找到使用第二列作为对应关系的同一列中已有的类别填充缺失的分类值的快速方法



正如您在屏幕截图中看到的,代码列的值与名称列的值相对应。这是因为代码用于项目代码,名称用于项目名称。

如何使用代码列作为对应来填充名称列的缺失值?有什么方法可以解决这个问题吗?

      code  name                countryshortname
212   1                         Liberia
2     1     Economic management Tunisia
1211  1     Economic management Tonga
1045  1     Economic management Macedonia, former Yugoslav Republic of
363   1                         Cote d'Ivoire
453   1     Economic management Lesotho
784   1     Economic management Tanzania
648   1     Economic management Lao People's Democratic Republic
647   1     Economic management Lao People's Democratic Republic
204   1     Economic management Kyrgyz Republic
205   1     Economic management Kyrgyz Republic
249   1     Economic management Armenia
1437  1                         Guatemala
1212  1     Economic management Kenya
1114  1                         Honduras
[ScreenShot of Actual Dataframe][1]

  [1]: https://i.stack.imgur.com/eq6xt.png

因为您的问题中只有一个代码/名称组合,所以我无法更全面地测试这一点。但是,如果您按代码和名称排序,您应该能够转发填充NaN

df['name']=df.sort_values(['code','name'])['name'].fillna(method='ffill')
        code    name    countryshortname
212     1   Economic    Liberia
2       1   Economic    Tunisia
1211    1   Economic    Tonga
1045    1   Economic    Macedonia
363     1   Economic    Cote
453     1   Economic    Lesotho
784     1   Economic    Tanzania
648     1   Economic    Lao
647     1   Economic    Lao
204     1   Economic    Kyrgyz
205     1   Economic    Kyrgyz
249     1   Economic    Armenia
1437    1   Economic    Guatemala
1212    1   Economic    Kenya
1114    1   Economic    Honduras

最新更新