2017-05-10 46 views
1

一定的价值,我有以下的熊猫系列:重命名熊猫系列

print(df.head()) 
      Country Energy Supply Energy Supply per Capita % Renewable 
0  Afghanistan 3.210000e+08      10 78.669280 
1   Albania 1.020000e+08      35 100.000000 
2   Algeria 1.959000e+09      51  0.551010 
3 American Samoa   NaN      ...  0.641026 
4   Andorra 9.000000e+06      121 88.695650 

如何重命名阿富汗Afghanistan_new? 我可以设置索引:

df = df.set_index('Country') 

,然后尝试重新命名该国的方式如下:

df['Afghanistan'].rename('Afghanistan_renamed') 

,但它不工作。

+0

是的,一个原因,这可能很麻烦的是,你的名字来改变你的第一个第二个值名单。因此,想象你的数据是这样的:[[0,“阿富汗”],[1,“阿尔巴尼亚”]]。要直接编辑阿富汗,必须编辑df [0] [1]的数据结构。我相信也有包装方法,但这正是你正在处理的。 – AgnosticDev

回答

3

如果需要更换index您可以使用:

df = df.set_index('Country') 
df = df.rename(index={'Afghanistan':'Afghanistan_renamed'}) 
print (df) 
        Energy Supply Energy Supply per Capita % Renewable 
Country                 
Afghanistan_renamed 3.210000e+08      10 78.669280 
Albania    1.020000e+08      35 100.000000 
Algeria    1.959000e+09      51  0.551010 
American Samoa     NaN      ...  0.641026 
Andorra    9.000000e+06      121 88.695650 

replace列:

df['Country'] = df['Country'].replace({'Afghanistan':'Afghanistan_renamed'}) 
df = df.set_index('Country') 
print (df) 
        Energy Supply Energy Supply per Capita % Renewable 
Country                 
Afghanistan_renamed 3.210000e+08      10 78.669280 
Albania    1.020000e+08      35 100.000000 
Algeria    1.959000e+09      51  0.551010 
American Samoa     NaN      ...  0.641026 
Andorra    9.000000e+06      121 88.695650 
+0

是的,当然。 Ony扩展'dict'就像'{'Afghanistan':'Afghanistan_renamed','Albania':'Albania111'}' – jezrael

+0

可以在没有将索引设置为国家的情况下完成吗? – feedthemachine

+1

我想是的,只有在第二种解决方案中省略'df = df.set_index('Country')' – jezrael