Python 如何有条件地更改熊猫系列中的值?
我正试图从一个使用其他三个数据帧连接的数据帧中进行一些基本数据分析。正如您可以想象的那样,在合并后的一些数据帧列中存在NaN值。所有单独的数据帧包含大多数相同的标题,但来自三个不同的年份(201720182019) 我感兴趣的数据涉及两列:Python 如何有条件地更改熊猫系列中的值?,python,pandas,loops,dataframe,nan,Python,Pandas,Loops,Dataframe,Nan,我正试图从一个使用其他三个数据帧连接的数据帧中进行一些基本数据分析。正如您可以想象的那样,在合并后的一些数据帧列中存在NaN值。所有单独的数据帧包含大多数相同的标题,但来自三个不同的年份(201720182019) 我感兴趣的数据涉及两列: 列有世界各国(“国家”)名称的专栏 一个名为“地区”的栏目(描述一个国家位于非洲“撒哈拉以南”、“拉丁美洲”等地的地理位置) 由于country和region列不会更改(即它们必须始终对应),我认为可能有一种方法可以更改df.region列行中的NaN值,以
dictionary = {'Belize':'Latin America and Caribbean',
'Namibia':'Sub-Saharan Africa',
'Puerto Rico':'Latin America and Caribbean',
'Somalia':'Sub-Saharan Africa',
'Somaliland Region':"Sub-Saharan Africa",
'South Sudan':'Sub-Saharan Africa'}
for i, row in df.iterrows():
country = df.COUNTRY
region = df.REGION
for key in dictionary:
if country in dictionary:
df.REGION = dictionary[d]
上面的字典以国家名称作为关键字,以地区作为值
是否有人知道如何使用某种映射函数来填充与上述词典中的国家名称相对应的区域列中缺少的(NaN)值(即区域名称)
非常感谢您的帮助
提前感谢大家使用非常简单:
结果:
Country Region
0 Namibia Sub-Saharan Africa
1 Belize Latin America and Caribbean
使用非常简单:
结果:
Country Region
0 Namibia Sub-Saharan Africa
1 Belize Latin America and Caribbean
您可以使用
map
功能替换区域为None的所有值:
df = pd.DataFrame({"COUNTRY": ["Germany", "USA", "Belize"],
"REGION": ["Europe", "North America", None]})
df.loc[df.REGION.isnull(), "REGION"] = df.loc[df.REGION.isnull()].COUNTRY.map(dictionary)
您可以使用
map
功能替换区域为None的所有值:
df = pd.DataFrame({"COUNTRY": ["Germany", "USA", "Belize"],
"REGION": ["Europe", "North America", None]})
df.loc[df.REGION.isnull(), "REGION"] = df.loc[df.REGION.isnull()].COUNTRY.map(dictionary)
请分享你的数据框
df
。请分享你的数据框df
的一个样本。谢谢。它像一个符咒一样工作。非常简单的解决方案。谢谢。它像一个符咒一样工作。非常简单的解决方案。地图功能的使用非常酷。我一定会把它添加到我的技术中。谢谢你非常酷地使用地图功能我一定会把这个加入到我的技巧中。谢谢