首页 > 解决方案 > Pandas DataFrame 保留最早的列和值

问题描述

我正在使用 NUTS3 级别的人口统计数据数据框,并且不同地区以不同的时间间隔报告数据。我总是想要最新的数据,年份因地区而异。

数据可能如下所示 |

region|2015|2014|2013|
AT201 | 101| 100|    |
AB301 |    | 123| 456|
AB302 |    |    | 234|

如何将年份列组合成一个包含最新数据的列,例如

region|newest_data|
AT201 |        101|
AB301 |        123| 
AB302 |        234|

下面是实际数据截图的链接 https://i.stack.imgur.com/AUP3A.png

非常感谢任何提示或指示!

标签: pythonpandasdataframemerge

解决方案


将非年份列转换为索引DataFrame.set_index,回填缺失值,选择第一列,重命名并转换为DataFrame

df = df.set_index(['region']).bfill(axis=1).iloc[:, 0].rename('newest_data').reset_index()

推荐阅读