我正在开发库存搜索系统,其中一个功能是返回某个日期范围内的所有行。
问题是,有多个行共享相同的日期,但每个 ID 都是唯一且不同的。 ID 越高,进入的越晚。
数据框看起来像这样:
id, date, item1, item2, ....
1, 8-11-2018, 10, 10, ...
2, 8-11-2018, 10, 10, ...
3, 8-11-2018, 10, 10, ...
4, 8-13-2018, 10, 10, ...
5, 8-13-2018, 10, 10, ...
6, 8-14-2018, 10, 10, ...
因此,如果我的日期范围是从 8-11-2018 到 8-14-2018,将返回的行是 3, 8-11-2018, 10, 10, ...
、5、8-13-2018、10、10、...
和 6、8-14-2018、10、10、...
。
我用 groupby
尝试了一些东西,但这些方法都不起作用。
我能想到的唯一方法是将“主数据框”分成具有相同日期的较小数据框,然后按 ID 对其进行排序,但这似乎是一种糟糕的方法。
我应该如何解决这个问题?谢谢。
最佳答案
使用drop_duplicates
df.sort_values('id').drop_duplicates('date',keep='last')
关于python - 当它们都共享相同的日期时获取列中值最高的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51803908/