Pandas:在lambda函数可能/反馈的列中更改名称

在从这里获得大量的帮助和大量的networkingsearch之后,我将完成我的Cousera Datascience任务的一部分(10)。 但是因为我对Python和Pandas没有经验,所以我有一种唠叨的感觉,那就是问题可以解决得更好。

任务:从这里导入一个Excel列表: http : //unstats.un.org/unsd/environment/excel_file_tables/2013/Energy%20Indicators.xls用国家名称中的“(”删除数字和所有内容。 (在字典里)

这是工作的代码。 我能做些什么更好/更有效率?

energy=pd.read_excel('Energy Indicators.xls', sheetname='Energy', skiprows=[17], skipfooter=38, header=15, index_col=[0], usecols=[2,3,4,5] ) energy.index.names=['Country'] energy.rename(columns={'Renewable Electricity Production': '% Renewable'}, inplace=True) energy=energy.reset_index() energy.Country=energy.Country.replace(to_replace='\d',value='', regex=True) energy.Country=energy.Country.replace(to_replace='( \()(.*)(\))',value='', regex=True) #energy.Country=energy.Country.replace(to_replace='(\.){3}',value='None', regex=True) dicts = {"Republic of Korea": "South Korea", "United States of America": "United States", "United Kingdom of Great Britain and Northern Ireland": "United Kingdom", "China, Hong Kong Special Administrative Region": "Hong Kong"} for x in dicts.keys(): energy.Country.loc[lambda s: s==x]=dicts[x] 

那么,大pandas已经有这样的内buildfunction:

 energy.Country.replace(dicts, inplace=True) 
Interesting Posts