Python 基于列索引重命名Dataframe列
是否有内置函数按索引重命名数据帧 我以为我知道列标题的名称,但第二列中有一些十六进制字符。根据我接收数据的方式,我将来可能会在第2列遇到这个问题,因此我无法将这些特定的十六进制字符硬编码到dataframe.rename()调用中 是否有一个函数可以被适当地命名为rename_col_by_index(),但我找不到 例: 更新:感谢: 或者更灵活一点: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 [
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"})