python - 选择特定日期的最大数量
问题描述
这是桌子
对于每个(shopID, productID)
组合,我想选择最大值Quantity
,如果它们是多个,则随机选择一个,结果如下:
第一张表的代码
from datetime import date
import pandas as pd
df=pd.DataFrame({"Date":[date(2019,10,1),date(2019,10,1),date(2019,10,1),date(2019,10,2),date(2019,10,2),date(2019,10,2),date(2019,10,3),date(2019,10,3),date(2019,10,3)],
"ShopID":[1,1,1,1,1,1,2,2,2],
"ProductID":[1,1,1,2,2,2,1,1,1],
"Quantity":[3,3,2,4,5,6,4,5,6],
"Desc":["a","b","c","d","e","f","g","h","i"]})
我如何想出第二张桌子?
解决方案
使用DataFrame.sort_values
基于 .Quantity
然后使用groupby.first
with ascending = False
or来订购groupby.last
:
new_df=df.sort_values('Quantity').groupby(['Date','ShopID','ProductID']).last()
print(new_df)
Date ShopID ProductID Quantity Desc
2019-10-01 1 1 3 b
2019-10-02 1 2 6 f
2019-10-03 2 1 6 i
或者:
df.sort_values('Quantity',ascending=False).groupby(['Date','ShopID','ProductID']).first()
推荐阅读
- javascript - 处理小时数组
- angular - 如何使用 Angular Formly Schematics 生成真实表单
- javascript - Bulk Upsert Javascript 存储过程总是超过 5 秒的执行上限并导致超时
- android - 如何使用CameraX检查相机是否支持Android上的自动对焦?
- java - 如何通过 Html.fromHtml(text) 更改在 TextView 中加载的默认图像(占位符)
- azure - 从函数应用程序 c# 中的 Azure blob 存储读取大型 XML 文件
- java - 如何从 .properties 文件中捕获 SQL 语法错误?
- vaadin - 在 Vaadin14 中打开外部 BIRT 链接时出现问题
- python - 带有月份和日期的python中的闰日数
- json - 用 jq 选择所有子对象的键