【问题标题】:Pandas DataFrame keep earliest column with valuesPandas DataFrame 保留最早的列和值
【发布时间】:2021-12-16 22:11:50
【问题描述】:

我正在使用 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

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

【问题讨论】:

    标签: python pandas dataframe merge


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢你,jezrael - 这就像一个魅力。由于我没有足够的声誉,我无法对您的答案进行投票,但我非常感谢您的帮助。
    • @RasmusLehmann - 未来 ;) 编码愉快!
    猜你喜欢
    • 2022-07-28
    • 1970-01-01
    • 2017-05-10
    • 2013-03-17
    • 1970-01-01
    • 2018-11-06
    • 1970-01-01
    • 2016-09-25
    • 2020-03-22
    相关资源
    最近更新 更多