python - 当它们都共享相同的日期时获取列中值最高的行?

标签 python pandas

我正在开发库存搜索系统,其中一个功能是返回某个日期范围内的所有行。

问题是,有多个行共享相同的日期,但每个 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/

相关文章:

python - 使用 Google Docs List API、Python 和 OAuth 2 进行身份验证

python - 无需重新分配即可在 pandas.DataFrame 中快速删除和添加行

python - 将非零值替换为 1

python - Python 中的机器人运动

python - PySNMP MIB 模块在尝试访问功能 Counter64 时失败

python - 合并(连接)带有缺失值和不同类型(str & int)的 Pandas 列

python - pandas 在元素上循环

python - 根据 True/False "sets"在 pandas dataframe 中添加后续值

python - Django 查询集

python - 指针作为扩展类型 cython 中的属性