使用 python pandas 获取每组中具有最大值的行

问题描述 投票:0回答:2

我有一个数据框。它按“ex”分组,如下所示: 在此输入图片描述 现在我想获取每组中具有最大值的行

python pandas jupyter-notebook finance analysis
2个回答
2
投票

所以快速谷歌搜索,你会发现如何获取相关行这里: 供您实施:

df.groupby("ex")['transaction_fee'].max()

您应该寻找的另一件事是如何获取原始表的相应索引。你可以在这里找到类似的东西:

为了您的实施:

idxs = df.groupby("ex")['transaction_fee'].transform(max) == df['transaction_fee']
relevant_df = df[idxs]

干杯✌


0
投票

用于获取一列的分组的所有列值和另一列的最大值。使用

idxmax()
iloc()

idxmax()
将返回最大值的索引,而不是最大值本身。

iloc()
基于索引,返回 df 的选定部分。
我们可以使用 ids 来过滤记录。

idxs = df.groupby("ex")['transaction_fee'].idxmax()
df = df.iloc[idxs]
© www.soinside.com 2019 - 2024. All rights reserved.