Python 基于列索引重命名Dataframe列

Python 基于列索引重命名Dataframe列,python,pandas,Python,Pandas,是否有内置函数按索引重命名数据帧 我以为我知道列标题的名称,但第二列中有一些十六进制字符。根据我接收数据的方式,我将来可能会在第2列遇到这个问题,因此我无法将这些特定的十六进制字符硬编码到dataframe.rename()调用中 是否有一个函数可以被适当地命名为rename_col_by_index(),但我找不到 例: 更新:感谢: 或者更灵活一点: In [141]: mapping = {df.columns[0]:'new0', df.columns[1]: 'new1'} In [

是否有内置函数按索引重命名数据帧

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

是否有一个函数可以被适当地命名为rename_col_by_index(),但我找不到

例:

更新:感谢:

或者更灵活一点:

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
A的更好

df.rename(columns={"col1": "New name"})

但是lambda不会强制所有列通过
rename()
吗?一个简单的
重命名(columns={df.columns[1]:'new'})
就足够了。编辑到您的编辑:您仍然不需要lambda。您只需传入
映射
命令。对于第一个命令,您似乎无法访问重命名的序列。
df.columns.values[index]
使我的jupyter笔记本崩溃。我的马克斯的答案似乎更好。
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
df.rename(columns={"col1": "New name"})