2017-05-10 207 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