重置列索引熊猫?

时间:2017-02-16 21:06:27

标签: python pandas

>>> 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?

5 个答案:

答案 0 :(得分:14)

尝试以下方法:

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

答案 1 :(得分:11)

尝试替换列名:

>>> 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 = 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

答案 2 :(得分:2)

在pandas中,按索引你基本上是指行索引。正如您在数据中看到的那样,行索引在drop和reset_index()之后重置。

对于列,您需要重命名它们,您可以执行类似

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

答案 3 :(得分:0)

如果您使用import numpy as np

导入了numpy

只需使用data.columns = [np.arange(0,data.shape[1])]

将列设置为零基于索引

答案 4 :(得分:0)

纯Python实现

我们enumerate数据框的columns创建一个项数组。然后,我们将map函数reversed应用于数组中的每个项目。最后,我们在数据框对象方法columns中创建并输入字典作为参数rename

columns = dict(map(reversed, enumerate(df.columns)))
df = df.rename(columns=columns)
df.head()

结果:

              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