为了账号安全,请及时绑定邮箱和手机立即绑定

Pandas:按名称分组并以最近的日期取行

Pandas:按名称分组并以最近的日期取行

眼眸繁星 2021-09-23 10:01:03
我有一个带有列的 Pandas DataFrame A, B, C, D, date。我想过滤掉Aand 的重复项B,保留date.所以如果我有两行看起来像:A B C D date1 1 2 3 1/1/181 1 2 3 1/1/17正确的输出是:A B C D date1 1 2 3 1/1/18我可以通过循环来做到这一点,但我想使用df.groupby(['A', 'B'])然后通过获取date每个组中的最大值进行聚合。我试过:df.groupby(['A', 'B']).agg(lambda x: x.iloc[x.date.argmax()])但我得到:AttributeError: 'Series' object has no attribute 'date'知道我做错了什么吗?编辑:嗯,如果我这样做:df.groupby(['A', 'B']).UPDATED_AT.max()我得到的大部分都是我想要的,但我失去了专栏D和C......
查看完整描述

3 回答

?
萧十郎

TA贡献1815条经验 获得超13个赞

试试df.groupby(['A', 'B']).agg(lambda x: x.iloc[x['date'].argmax()]) 熊猫有自己的日期对象。也许熊猫对系列名称感到困惑。


查看完整回答
反对 回复 2021-09-23
  • 3 回答
  • 0 关注
  • 244 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信