首页 > 解决方案 > 使用索引重命名多个列

问题描述

如何使用索引重命名数据框的多个列?例如,我想将位置 5、6、7、8 的列分别重命名为“五”、“六”、“七”、“八”。我不想单独输入字典中的键。

标签: pythonpandasdataframerename

解决方案


在已经有字典的情况下,您可以使用rename映射到新的轴值:

df = pd.DataFrame(columns=range(10))
d = {5:'five', 6:'six', 7:'seven', 8:'eight'}
df = df.rename(d, axis=1)
# Index([0, 1, 2, 3, 4, 'five', 'six', 'seven', 'eight', 9], dtype='object')

或者,正如@ch3ster 所指出的那样, rename 接受两个参数,indexcolumn允许独立地重命名两者:

df = df.rename(columns=d)

如果您知道要重命名的列范围,并且有一个新列名列表,您可以构建一个字典,如下所示rename

l = ['five', 'six', 'seven', 'eight', 'nine']
df = df.rename(columns=dict(zip(range(5,9), l)))

推荐阅读