如何获取Pandas DataFrame GroupBy后最大key对应的分组?
解决方案
这里有几种简洁的方法可以实现你的需求,基于你已经创建好的分组对象来操作:
方法1:利用分组对象的get_group方法
先把你的代码补全(通常大家会用pd作为pandas的别名,不过直接用pandas也完全没问题):
import pandas as pd td = [[10,'A'],[10, 'B'],[2, 'C']] df = pd.DataFrame(td, columns=['col1','col2']) grouped = df.groupby('col1')
接下来两步就能拿到结果:
- 找到分组里的最大key——其实就是
col1列的最大值,直接用df['col1'].max()获取比从分组对象里取更高效; - 用分组对象的
get_group方法传入这个最大key,就能拿到对应分组的DataFrame,再提取col2列转成列表:
max_key = df['col1'].max() target_list = grouped.get_group(max_key)['col2'].tolist() print(target_list) # 输出: ['A', 'B']
方法2:无需分组直接筛选(更简便)
如果你的核心需求只是获取最大col1对应的col2值列表,其实可以跳过groupby,直接对原DataFrame做筛选:
max_key = df['col1'].max() target_list = df[df['col1'] == max_key]['col2'].tolist()
两种方法都能得到你想要的['A','B']结果,根据你的实际场景选择就行~
内容的提问来源于stack exchange,提问作者kTest
相关产品推荐
相关产品推荐

