2017-02-16 3 views
2
>>> data = data.drop(data.columns[[1,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]], axis=1) 
>>> data = data.drop(data.index[[0,1]],axis = 0) 
>>> print(data.head()) 
      0   2 3 4 20 
2 500292014600  .00 .00 .00 NaN 
3 500292014600 100.00 .00 .00 NaN 
4 500292014600 11202.00 .00 .00 NaN 
>>> data = data.reset_index(drop = True) 
>>> print(data.head()) 
       0   2 3 4 20 
0 500292014600  .00 .00 .00 NaN 
1 500292014600 100.00 .00 .00 NaN 
2 500292014600 11202.00 .00 .00 NaN 

Как происходит, когда я использую df.reset_index, индекс моих столбцов не сбрасывается? Как я могу сбросить этот индекс до 0,1,2,3,4?Сбросить индекс столбцов Pandas?

ответ

5

Попробуйте заменить имена столбцов:

>>> import numpy as np 
>>> import pandas as pd 

>>> my_data = [[500292014600, .00, .00, .00, np.nan], 
       [500292014600, 100.00, .00, .00, np.nan], 
       [500292014600, 11202.00, .00, .00, np.nan]] 
>>> df = pd.DataFrame(my_data, columns=[0,2,3,4,20]) 
>>> df 
       0  2 3 4 20 
0 500292014600  0.0 0.0 0.0 NaN 
1 500292014600 100.0 0.0 0.0 NaN 
2 500292014600 11202.0 0.0 0.0 NaN 

>>> df.columns = [i for i in range(df.shape[1])] 
>>> df 
       0  1 2 3 4 
0 500292014600  0.0 0.0 0.0 NaN 
1 500292014600 100.0 0.0 0.0 NaN 
2 500292014600 11202.0 0.0 0.0 NaN 
1

В пандах, по индексу, вы по существу означают индекс строки. Как вы можете видеть в ваших данных, индекс строки сбрасывается после drop и reset_index().

Для столбцов, вы должны переименовать их, вы можете сделать что-то вроде

data.columns = [ 0,1,2,3,4] 
2

Попробуйте следующее:

df = df.T.reset_index(drop=True).T 
0

If у вас есть numpy, импортированный с import numpy as np

просто установите столбцы на нулевые индексы с data.columns = [np.arange(0,data.shape[1])]

Смежные вопросы