基于其他列的分类值创建新的pandas列(Python)

4
我有一个数据框,其中包含“国家”和“流量”列:
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/else、map或lambda语句:
df['Region'] = np.where(df['Country'] == 'US', 'US', 'EU')

Thank You.

2个回答

3
一个简单的方法是这样的:
dict ={'US':'US','Italy':'EU','Germany':'EU','Brazil':'LA','France':'EU'}

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

2
你可以使用字典:
region_from_country = {
    'US': 'US', 
    'Italy': 'EU',
    'Germany': 'EU',
    'Brazil': 'LA', 
    'France': 'EU',
}
df['Region'] = df['Country'].replace(region_from_country)

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接