使用索引更改列名

时间:2018-12-14 06:29:26

标签: python

import pandas as pd

d = {
         'one': [1, 2, 3, 4, 5],
         'one': [9, 8, 7, 6, 5],
         'three': ['a', 'b', 'c', 'd', 'e']
    }

df = pd.DataFrame(d)

我有更大的数据框,其中有多个具有相同名称的列。 我想从列数中更改列名,如r中所示。 例如colnames(df)[2]='two' 我想将第二列名称从“一”更改为“二”。 在python中。

1 个答案:

答案 0 :(得分:0)

我认为最简单的是通过np.arangerange分配新的列名称:

#valid dictionary have unique keys
d = {
         'one1': [1, 2, 3, 4, 5],
         'one2': [9, 8, 7, 6, 5],
         'three': ['a', 'b', 'c', 'd', 'e']
    }

df = pd.DataFrame(d)
df.columns = ['one'] * 2 + ['three']
print (df)
   one  one three
0    1    9     a
1    2    8     b
2    3    7     c
3    4    6     d
4    5    5     e

df.columns = np.arange(len(df.columns))
#alternative
#df.columns = range(len(df.columns))
print (df)
   0  1  2
0  1  9  a
1  2  8  b
2  3  7  c
3  4  6  d
4  5  5  e

然后按名称选择:

print (df[1])
0    9
1    8
2    7
3    6
4    5
Name: 1, dtype: int64