【发布时间】:2018-12-22 01:14:08
【问题描述】:
我有一个带有 A, B, C, D, date 列的 Pandas DataFrame。我想过滤掉A 和B 的重复项,保留date 中具有最新值的行。
所以如果我有两行看起来像:
A B C D date
1 1 2 3 1/1/18
1 1 2 3 1/1/17
正确的输出是:
A B C D date
1 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 列...
【问题讨论】: