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