根据列索引重命名Dataframe列

时间:2017-01-16 22:18:31

标签: python pandas

是否有内置函数通过索引重命名pandas数据帧?

我以为我知道列标题的名称,但事实证明第二列中有一些十六进制字符。根据我接收数据的方式,我可能会在未来根据第2列遇到此问题,因此我无法将这些特定的十六进制字符硬编码到dataframe.rename()调用中。

是否有一个我无法找到的名称为rename_col_by_index()的函数?

例如:

>>> df = pd.DataFrame({'a':[1,2], 'b':[3,4]})
>>> df.rename_col_by_index(1, 'new_name')
>>> df
   a  new_name
0  1         3
1  2         4

2 个答案:

答案 0 :(得分:13)

您只需使用

即可
<div>
    foo
    <div>
        bar
    </div>
</div>

或用

替换所有现有名称
df.columns.values[index] = "New name"

答案 1 :(得分:4)

更新:感谢@Vincenzzzochi

In [138]: df.rename(columns={df.columns[1]: 'new'})
Out[138]:
   a  new  c
0  1    3  5
1  2    4  6

In [140]: df
Out[140]:
   a  b  c
0  1  3  5
1  2  4  6

或更灵活:

In [141]: mapping = {df.columns[0]:'new0', df.columns[1]: 'new1'}

In [142]: df.rename(columns=mapping)
Out[142]:
   new0  new1  c
0     1     3  5
1     2     4  6