python - 填写每组行的数据框值
问题描述
假设我有以下数据集:
Time Geography Sex Population
1990 Northern Ireland Male NA
1990 Northern Ireland Female NA
1990 Northern Ireland Total NA
1991 Northern Ireland Male NA
1991 Northern Ireland Female NA
1991 Northern Ireland Total NA
1992 Northern Ireland Male 792100
1992 Northern Ireland Female 831100
1992 Northern Ireland Total 1623300
1993 Northern Ireland Male 812100
1993 Northern Ireland Female 851100
1993 Northern Ireland Total 1663200
最后我想要以下内容:
Time Geography Sex Population
1990 Northern Ireland Male 792100
1990 Northern Ireland Female 831100
1990 Northern Ireland Total 1623300
1991 Northern Ireland Male 792100
1991 Northern Ireland Female 831100
1991 Northern Ireland Total 1623300
1992 Northern Ireland Male 792100
1992 Northern Ireland Female 831100
1992 Northern Ireland Total 1623300
1993 Northern Ireland Male 812100
1993 Northern Ireland Female 851100
1993 Northern Ireland Total 1663200
这意味着基本上我想用没有 NA 的第一年的值填写前几年的值。
我该怎么做呢?
解决方案
你可以试试这个:
df.set_index(['Time','Geography','Sex']).unstack().bfill().stack().reset_index()
输出:
Time Geography Sex Population
0 1990 Northern Ireland Female 831100.0
1 1990 Northern Ireland Male 792100.0
2 1990 Northern Ireland Total 1623300.0
3 1991 Northern Ireland Female 831100.0
4 1991 Northern Ireland Male 792100.0
5 1991 Northern Ireland Total 1623300.0
6 1992 Northern Ireland Female 831100.0
7 1992 Northern Ireland Male 792100.0
8 1992 Northern Ireland Total 1623300.0
推荐阅读
- ubuntu - 使用 nginx 配置 owncloud 的 Fastcgi 参数
- reactjs - 无法在 React Router 链接中传递状态
- angular - 无法在 Angular 的 AOT Prod 模式下获取注释
- arrays - 从熊猫数组中获取元素
- asp.net - 如何通过博客计数调整两个值之间的 HTML div/链接?
- javascript - 如何在按钮单击时清除 localStorage
- python - 如何使用 QtWebEngine 在 Raspberry Pi 上安装 PySide2 / PyQt5?
- flutter - 导航到新屏幕时保留底部导航栏
- c# - Unity,如何在 API 中访问正确的声明?
- python - 如何从 JSON 响应中获取特定值 - Python