首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让熊猫显示所有的最大值?

问如何让熊猫显示所有的最大值?
EN

Stack Overflow用户
提问于 2021-03-20 10:07:25
回答 3查看 43关注 0票数 2

我想要获取dataframe中某列的日期和最大值,但如果有多个记录,我希望所有记录都具有最大值。当我这样做的时候,我只能得到第一条记录:

代码语言:javascript
复制
df_max = df.loc[df.groupby('date')['quantity'].idxmax]
EN

回答 3

Stack Overflow用户

发布于 2021-03-20 10:09:42

尝试使用transform

代码语言:javascript
复制
df_max = df.loc[df.groupby('date')['quantity'].transform('max') ==df['quantity'] ]
票数 0
EN

Stack Overflow用户

发布于 2021-03-20 10:22:09

我能够得到所有的行。这是我所做的。

代码语言:javascript
复制
import pandas as pd
df = pd.DataFrame({"date":['2021-01-01','2021-01-01','2021-01-01','2021-01-01',
                        '2021-01-02','2021-01-02','2021-01-03','2021-01-03'],  
                   "quantity":[11, 2, 5, 8, 11, 8, 11, 4]})
print (df)

dfmax = df.loc[df.groupby('date')['quantity'].idxmax()]

print (dfmax)

原始DataFrame:

代码语言:javascript
复制
         date  quantity
0  2021-01-01        11
1  2021-01-01         2
2  2021-01-01         5
3  2021-01-01         8
4  2021-01-02        11
5  2021-01-02         8
6  2021-01-03        11
7  2021-01-03         4

使用idxmax的最大值:

代码语言:javascript
复制
         date  quantity
0  2021-01-01        11
4  2021-01-02        11
6  2021-01-03        11
票数 0
EN

Stack Overflow用户

发布于 2021-03-20 10:28:55

下面是一个如何使用apply完成此操作的示例

代码语言:javascript
复制
dfmax = df[df.groupby('date')['quantity'].apply(lambda x: x==x.max())]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66717611

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档