从列表中更改Pandas Dataframe中的列名称

时间:2017-08-02 18:40:54

标签: python pandas

是否可以使用列表中的数据更改列名?

df = pd.DataFrame([[1, 1.0, 2.3,0.2,0.53], [2, 3.35, 2.0,0.2,0.65], [2,3.4, 
       2.0,0.25,0.55], [3,3.4,2.0,0.25,0.55], [1,3.4,2.0,0.25,0.55], 
       [3,3.4,2.0,0.25,0.55]], 
       columns=["ID", "A", "B","C","D"])\
       .set_index('ID')

我的新标签如下:

New_Labels=['NaU', 'MgU', 'AlU', 'SiU']

可以使用上面列表中的数据更改名称吗?我的原始数据集有100列,我不想为每列手动完成。

我正在使用df.rename尝试以下操作,但不断收到错误。谢谢!

4 个答案:

答案 0 :(得分:2)

df = pd.DataFrame([[1, 1.0, 2.3,0.2,0.53], [2, 3.35, 2.0,0.2,0.65], [2,3.4, 
       2.0,0.25,0.55], [3,3.4,2.0,0.25,0.55], [1,3.4,2.0,0.25,0.55], 
       [3,3.4,2.0,0.25,0.55]], 
       columns=["ID", "A", "B","C","D"])\
       .set_index('ID')
New_Labels=['NaU', 'MgU', 'AlU', 'SiU']
df.columns = New_Labels

这会使df看起来像这样:

     NaU  MgU   AlU   SiU
ID                       
1   1.00  2.3  0.20  0.53
2   3.35  2.0  0.20  0.65
2   3.40  2.0  0.25  0.55
3   3.40  2.0  0.25  0.55
1   3.40  2.0  0.25  0.55
3   3.40  2.0  0.25  0.55

答案 1 :(得分:2)

使用rename是一种正式更正确的方法。您只需提供一个字典,将您当前的列名称映射到新的列名称(即使在列错位的情况下也可以保证预期结果)

new_names = {'A':'NaU', 'B':'MgU', 'C':'Alu', 'D':'SiU'}
df.rename(index=str, columns=new_names)

请注意,您可以提供您想要替换的唯一名称的条目,其余的将保持不变。

答案 2 :(得分:1)

您可以使用:

df.columns = New_Labels

答案 3 :(得分:1)

df.columns = New_Labels

注意新列名称的顺序。