【发布时间】:2020-09-11 23:37:17
【问题描述】:
我正在尝试对使用其他三个数据框连接的数据框进行一些基本的数据分析。正如您可以想象的那样,合并后的某些数据框列中有 NaN 值。所有单个数据框都包含大部分相同的标题,但来自三个不同的年份(2017、2018、2019)
我感兴趣的数据涉及 2 列:
一列包含世界各国的名称('COUNTRY')
名为“地区”的列(描述了一个国家的地理位置,例如“撒拉罕以南非洲”、“拉丁美洲”等)。
由于国家和地区列不会改变(即它们必须始终对应),我认为可能有一种方法可以更改 df.REGION 列中的行中的 NaN 值,以匹配各自行中的相应国家.我希望对 df 进行永久更改。
我曾尝试使用数据帧映射,但未能成功。所以我尝试了一个字典和for循环方法(这似乎也是错误的方法)。但这是我在下面尝试的代码。剧透......它没有工作。
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]
上面的字典以国家名称为键,地区为值。
有谁知道使用某种映射函数来填充与上述字典中的国家名称相对应的 REGION 列中缺失的 (NaN) 值(即地区名称)?
感谢所有帮助。
提前谢谢大家
【问题讨论】:
-
请分享您的数据框样本
df。
标签: python pandas loops dataframe nan