python - 如何根据集团内的实体找到最大金额?

标签 python pandas dataframe

假设我的 DataFrame 看起来像这样:

Bank  Entity  Amount
JPM   NY      5000
JPM   NY      300
BOA   LA      10000
BOA   China   3000
MS    Japan   21000

我想基于顶级实体进行输出,同时记住银行是不同的,因此 DataFrame 变为:

Bank  Entity  Amount
JPM   NY      5000
BOA   LA      10000
MS    Japan   21000

我将如何创建这样的东西?我知道如何 sort_valuesgroup_by 但我肯定做错了什么。

有什么想法吗?我确信这非常简单。

最佳答案

使用DataFrameGroupBy.idxmax查找最大值的索引,然后按 loc 选择:

df = df.loc[df.groupby('Bank')['Amount'].idxmax()]
print (df)
  Bank Entity  Amount
2  BOA     LA   10000
0  JPM     NY    5000
4   MS  Japan   21000

或者sort_values首先然后使用GroupBy.last :

df = df.sort_values('Amount').groupby('Bank', as_index=False).last()
print (df)
  Bank Entity  Amount
0  BOA     LA   10000
1  JPM     NY    5000
2   MS  Japan   21000

关于python - 如何根据集团内的实体找到最大金额?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44591704/

相关文章:

python - 如何使循环重复直到总和为一位数?

python - 如何将索引列转换为普通列。?第 2colm 是索引并且我应用了 df_agg.index 并且我得到了我只需要 Txn_Date 中的日期的列

python - Pandas 无法读取 Excel 编码

python - 如何计算每日用户差异并 reshape pandas 数据框?

python - 如何转换 Dataframe Column1 :Column2 (key:value) in Dictionary in Pyspark?

python - Pandas 数据框操作以消除句点

python - Matplotlib 返回空图

python - 列表理解头痛

python - jython LookupError 或 ImportError

Python:对 Pandas 数据框中与列值匹配的行进行求和?