首页 > 解决方案 > 重命名我的 pandas DataFrames 中的前 10 列

问题描述

我实际上正在使用熊猫数据框。我有一个只有 1 行和 20 列的数据框。我想重命名前 10 列。所以我做了:

df.columns =['C0', 'C1', 'C2', 'C3', 'C4', 'C5', 'C6', 'C7', 'C8', 'C9', 'C10']

但我得到这个错误:

Length mismatch: Expected axis has 20 elements, new values have 10 elements

他们是否有任何方式向 python 表明我只有前 10 列要重命名?或者给其他人一个默认名称?

标签: pythonpandasdataframe

解决方案


rename与创建的字典一起使用zip,它适用于任意数量的唯一列名称:

df = pd.DataFrame([np.arange(5)])

L = ['C0', 'C1', 'C2', 'C3', 'C4', 'C5', 'C6', 'C7', 'C8', 'C9', 'C10']
df = df.rename(columns=dict(zip(df.columns, L)))
print (df)
   C0  C1  C2  C3  C4
0   0   1   2   3   4

df = pd.DataFrame([np.arange(15)])

L = ['C0', 'C1', 'C2', 'C3', 'C4', 'C5', 'C6', 'C7', 'C8', 'C9', 'C10']
df = df.rename(columns=dict(zip(df.columns, L)))
print (df)
   C0  C1  C2  C3  C4  C5  C6  C7  C8  C9  C10  11  12  13  14
0   0   1   2   3   4   5   6   7   8   9   10  11  12  13  14

推荐阅读