微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python-从pandas DataFrame返回最后一个有效(非null)值

假设我有一个数据框看起来像:

      a      b
0    11      A
1    -2      A
2     3      A
3    NA      A
4   0.5      B
5    NA      B
6    -9      B

我可以按“ b”创建组.有没有一种快速方法获取每个组的“ a”中的最后一个非NA值?在这种情况下,A组为3,B组为-9.

(在这种情况下,序列“ a”按照给定的顺序排序,但可能并非如此.可能还有另一列“ c”,据此定义了“最后一个”.)

我通过查看grouped.groups字典来编写自己的循环代码.但是,鉴于我庞大的数据集,这显然效率很低.我认为可以很直接地做到这一点-也许我对熊猫还只是个新手:-)

解决方法:

我最近为此添加一个github问题:https://github.com/pydata/pandas/issues/1043

同时,您可以执行以下操作:

def get_last_valid(series):
    return series.dropna().iget(-1)

df.groupby('b')['a'].apply(get_last_valid)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐