首页 > 解决方案 > Pandas Dataframe groupby 并按 max(key) 过滤

问题描述

td = [[10,'A'],[10, 'B'],[2, 'C']]
import pandas
df = pandas.DataFrame(td, columns=['col1','col2'])
df.groupby('col1')

所有,我如何通过 max(key) 获取组。在这种情况下 10 -> ['A','B']?

谢谢!

标签: pythonpandasdataframe

解决方案


一个通用的解决方案可以通过groupby列表,然后使用sort_indexiloc访问器:

res = df.groupby('col1')['col2']\
        .apply(list)\
        .sort_index(ascending=False)

print(res.iloc[0])

['A', 'B']

推荐阅读