Python 重命名数据帧中的前10列

Python 重命名数据帧中的前10列,python,pandas,dataframe,Python,Pandas,Dataframe,我实际上在使用熊猫数据帧。我的数据框只有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列?或者给其他人一个默认

我实际上在使用熊猫数据帧。我的数据框只有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列?或者给其他人一个默认名称?

使用
重命名
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


添加旧列名称以修复此问题

new_name=['C0','C1','C2','C3','C4','C5','C6','C7','C8','C9','C10']
df.columns=新名称+df.columns[len(新名称):]

另一种可能的解决方案是将
新名称
分配给
列的特定位置的

new_names = ['C0', 'C1', 'C2', 'C3', 'C4', 'C5', 'C6', 'C7', 'C8', 'C9', 'C10']
df.columns.values[:len(new_names)] = new_names 
df=df.rename(columns=dict(zip(df.columns,[f'C{i}'表示范围(11)])))
表示更高级的单衬里
new_names = ['C0', 'C1', 'C2', 'C3', 'C4', 'C5', 'C6', 'C7', 'C8', 'C9', 'C10']
df.columns.values[:len(new_names)] = new_names