使用pandas groupby+transform求分组最大值时索引异常的问题
解决方案
你用transform的思路是对的,问题出在你单独查看返回结果时,它只显示了原DataFrame的索引,但只要把这个结果作为新列添加到原数据里,就能实现“每行A列旁显示对应分组B列最大值”的需求。
直接改代码就行:
import pandas as pd # 读取指定列数据 df = pd.read_excel("data.xlsx", usecols="A,B") # 新增一列,存储当前行所属A分组的B列最大值 df['B分组最大值'] = df.groupby('A')['B'].transform('max') # 查看处理后的数据 print(df)
这样处理后,原DataFrame会保留A、B列的所有行,新增的B分组最大值列会自动对应每行的A分组,显示该组B列的最大值,完全符合你的需求。
如果你的需求是只保留每个A分组一行,对应显示B列最大值(去重后的结果),可以用下面的代码:
df_grouped = df.groupby('A')['B'].max().reset_index() print(df_grouped)
内容的提问来源于stack exchange,提问作者Stripers247
相关产品推荐
相关产品推荐

