【发布时间】:2016-01-25 11:17:19
【问题描述】:
我想在数据框中创建一个有条件地填充值的列。基本上我的数据框是这样的
Origin X
0 Guatemala x
1 China x
2 Kenya x
3 Venezuela x
4 Bangladesh x
我现在要做的是创建一个附加列“大陆”,它添加了依赖于国家/地区的大陆。我的结果如下所示:
Origin X Continent
0 Guatemala x South america
1 China x Asia
2 Kenya x Africa
3 Venezuela x South america
4 Bangladesh x Asia
我已经尝试了以下代码来接受我想要的:
def GetContinents(x):
if x['Origin']== 'Thailand' or 'Indonesia' or 'China' or 'Japan' or 'Bangladesh':
return 'Asia'
elif x['Origin']== 'Boliva' or 'Guatemala' or 'Venezuela' or 'Mexico' or 'Argentinia':
return 'South America'
elif x['Origin']== 'Guinea Bissau' or 'Egypt' or 'Zaire' or 'Kenya':
return 'Africa'
else:
return 'unknown'
df['Continent']= df.apply(GetContinents, axis=1)
这个神秘地用“亚洲”填充了“大陆”的所有列。
df['Continent'] = np.where(df['Origin'] == 'Bangladesh', 'Asia', 'unknown')
这个工作正常,它将“亚洲”填充到正确的列中,而将未知填充到所有其他列中,但是当我尝试制作类似 df['Continent'] = np.where(df['Origin'] == 'Bangladesh' or 'China', 'Asia', 'unknown') 的内容时,我得到了一个错误。
所以基本上我的问题是:我怎样才能用不同的值来满足我的 if 条件?
【问题讨论】:
标签: python if-statement pandas conditional dataframe