python - 使用条件更改数据框的列值
问题描述
在adult_quasiIdentifer 数据框中,有一个名为nativeCountry 的列。我正在尝试修改 nativeCountry 以使其包含大陆,而不是国家/地区名称。
这是我的代码:
North_America = ['United-States', 'Cuba', 'Jamaic', 'Mexico', 'Puerto-Rico', 'Honduras','Canada','Haiti', 'Dominican-Republic', 'El-Salvador', 'Guatemala','Nicaragua' ]
South_America = ['Columbia','Ecuador', 'Peru','Trinadad&Tobago']
Asia = ['India', 'Iran','Philippines', 'Cambodia', 'Thailand','Laos', 'Taiwan', 'China', 'Japan', 'Vietnam','Hong']
Europe = ['England','Germany', 'Italy','Poland', 'Portugal', 'France', 'Yugoslavia','Scotland', 'Greece', 'Ireland', 'Hungary','Holand-Netherlands']
contient = {'North_America': North_America,'South_America': South_America, 'Asia': Asia, 'Europe': Europe}
for key, val in contient.items():
adult_quasiIdentifier.loc[adult_quasiIdentifier.nativeCountry.isin(val),"nativeCountry"] = key
adult_quasiIdentifier
quasiIdentifier 数据集没有被修改,我也收到消息说
我不知道我的代码有什么问题。有什么办法可以修改 nativeCountry 列吗?谢谢!
解决方案
如果您可以创建国家/地区字典,则最简单。在这种情况下,您可以这样做:
import pandas as pd
#dummy data creating
df = pd.DataFrame({
'country': ['Cuba', 'Peru', 'India', 'Taiwan', 'England', 'Germany']
})
#country-continent dictionary
country_continent = {
'Cuba': 'South_America',
'Peru': 'South_America',
'India': 'Asia',
'Taiwan': 'Asia',
'England': 'Europe',
'Germany': 'Europe'
}
# then replace/change
df['country'] = df['country'].map(country_continent)
所以,从这个数据框中:
至:
而且,当我们这样做时,重命名该列可能会很好:
df.rename(columns={'country': 'continent'}, inplace=True)
推荐阅读
- javascript - 中断对 window.location 对象的访问
- python - 在 Pandas DataFrame 向量化操作中随机选择行
- fusionauth - 我可以将用户数据信息添加到令牌中吗?
- properties - 当我尝试从课堂外访问字段时,为什么不调用我的吸气剂?
- gstreamer - 如何使用 gstreamer 为星号提供音乐保持
- android - Flutter - 如何在单击时切换 FlatButton 的颜色?
- r - r magick 高亮图片
- java - 如何在 jdk11 中重写一个静态的 final 字段?
- c# - 获取屏幕中心
- c# - .Net Core Docker 无法加载 DLL 'activeds.dll'