首页 > 解决方案 > Python - 基于最新迭代获取Datafame中每个变量的非NaN值

问题描述

如何根据其最新迭代选择每个变量,按 id 分组,非 NaN 值。我的数据框看起来像这样

唯一身份 迭代 变量_1 变量_2
111 1 苹果
111 2 桌子
111 3
111 4
111 5 椅子

预期的结果应该是

唯一身份 迭代 变量_1 变量_2
111 5 椅子

还假设会有很多unique_id

标签: pythonpandas

解决方案


您可以使用:

df.fillna(method="ffill")

见文档

用于在重新索引的 Series pad / ffill中填充孔的方法:向前传播最后一个有效观察。


之后,您可以反转排序并删除重复项,基本上每个“组”仅获得 1 个条目:

df = df.sort_values(["unique_id", "iteration"], ascending=False)
df = df.drop_duplicates(["unique_id", "iteration"])

推荐阅读