Python 如何使用apply和lambda在数据帧中应用多个if/else条件?

Python 如何使用apply和lambda在数据帧中应用多个if/else条件?,python,pandas,dataframe,if-statement,apply,Python,Pandas,Dataframe,If Statement,Apply,我试图根据一组条件更新列中的某些行。例如,在下面的示例中,我试图根据一些if语句将“Country”列名更新为较短的版本,下面是我使用的内容。有更好的方法吗 energy['Country']=energy['Country'].适用(lambda x:'South Korea'如果x=='Republic Korea' else('美国'如果x=='美利坚合众国20' else('United Kingdom'如果x=='大不列颠及北爱尔兰联合王国' 否则,‘香港’如果X=’,中国,香港特别行

我试图根据一组条件更新列中的某些行。例如,在下面的示例中,我试图根据一些if语句将“Country”列名更新为较短的版本,下面是我使用的内容。有更好的方法吗

energy['Country']=energy['Country'].适用(lambda x:'South Korea'如果x=='Republic Korea'
else('美国'如果x=='美利坚合众国20'
else('United Kingdom'如果x=='大不列颠及北爱尔兰联合王国'
否则,‘香港’如果X=’,中国,香港特别行政区
其他(十))
使用

使用


尽可能避免
DataFrame.apply
这是一个隐藏循环。考虑向量化处理,例如将向量(即,麻木数组或大熊猫系列)传递到一个方法中,而不是一次一个标量元素:

energy['Country'] = np.select([energy['Country'] == 'South Korea', 
                               energy['Country'] == 'United States', 
                               energy['Country'] == 'United Kingdom', 
                               energy['Country'] == 'Hong Kong'],
                              ['Republic of Korea', 
                               'United States of America', 
                               'United Kingdom of Great Britain and Northern Ireland'
                               'China, Hong Kong Special Administrative Region'])

尽可能避免
DataFrame.apply
这是一个隐藏循环。考虑向量化处理,例如将向量(即,麻木数组或大熊猫系列)传递到一个方法中,而不是一次一个标量元素:

energy['Country'] = np.select([energy['Country'] == 'South Korea', 
                               energy['Country'] == 'United States', 
                               energy['Country'] == 'United Kingdom', 
                               energy['Country'] == 'Hong Kong'],
                              ['Republic of Korea', 
                               'United States of America', 
                               'United Kingdom of Great Britain and Northern Ireland'
                               'China, Hong Kong Special Administrative Region'])

使用内置函数几乎总是比迭代和使用apply更好。与其使用apply,还不如使用一个要替换的项字典,使用内置的,而不是迭代和使用apply。与其应用,不如使用要替换的项目字典,谢谢@Yuna.,这是帮助谢谢@Yuna.,这是帮助谢谢所有,非常有用的建议谢谢所有,非常有用的建议