通过使用if语句添加附加列来修改数据框。 我创建了5个列表,分别是:东亚,中亚,中美洲,南美洲,欧洲_东部和欧洲_西部。我想基于现有列添加条件列。即如果Japan在Central_East中,则添加列中的Japan行应包含Central East,依此类推。
df['native_region'] =df["native_country"].apply(lambda x: "Asia-East" if x in 'Asia_East'
"Central-Asia" elif x in "Central_Asia"
"South-America" elif x in "South_America"
"Europe-West" elif x in "Europe_West"
"Europe-East" elif x in "Europe_East"
"United-States" elif x in "
United-States"
else "Outlying-US"
)
文件“”,第2行 “ Central_Asia”中的“ Central-Asia” elif x ^ SyntaxError:语法无效
答案 0 :(得分:0)
我可能是错的,但我认为您正在以错误的方式解决问题。
您似乎在这里所做的只是将'_'替换为'-',您可以使用以下代码行:
df['native_region'] = df.native_country.str.replace('_', '-')
然后,以我的经验,像这样工作更容易理解:
known_countries = ['Asia-East', 'Central-Asia', 'South-America', ...]
is_known = df['native_country'].isin(known_countries )
df.native_region[~known_countries] = 'Outlying-US'
如果您与以下国家一起工作,这也可能会起作用:
east_asia_countries = ['Japan', 'China', 'Korea']
isin_east_asia = df['native_country'].isin(east_asia_countries)
df.native_region[known_countries] = 'East-Asia'