首页 > 解决方案 > 使用第二列作为对应关系,查找已在同一列中的类别填充缺失类别值的快速方法

问题描述

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

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

      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

标签: pythonpython-3.x

解决方案


因为您的问题中只有一个代码/名称组合,所以我无法更全面地测试它。但是,如果您按代码排序,然后按名称排序,您应该能够向前填充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

推荐阅读