根据其他列(python)中的分类值创建新的pandas列

时间:2017-02-08 21:22:46

标签: python pandas dataframe calculated-columns

我有一个包含国家/地区和流量列的数据框:

Country    |   Traffic
  US            8687
  Italy         902834
  Germany       2343
  Brazil        4254
  France        23453

我想添加第三列名为" Region"到这个数据框架。它看起来像这样:

 Country    |   Traffic   | Region
  US            8687         US
  Italy         902834       EU
  Germany       2343         EU
  Brazil        4254         LA
  France        23453        EU

如果我只有两个区域,则以下代码有效。我正在寻找更多if/elsemaplambda声明:

df['Region'] = np.where(df['Country'] == 'US', 'US', 'EU')

谢谢。

2 个答案:

答案 0 :(得分:1)

你可以使用字典:

region_from_country = {
    'US': 'US', 
    'Italy': 'EU',
    'Germany': 'EU',
    'Brazil': 'LA', 
    'France': 'EU',
}
df['Region'] = df['Country'].replace(region_from_country)

字典中的键是国家,值是相应的区域。

答案 1 :(得分:1)

一个简单的方法就是:

dict ={'US':'US','Italy':'EU','Germany':'EU','Brazil':'LA','France':'EU'}

df['Region']=df['Country'].apply(lambda x : dict[x])