Pandas groupby分组计算后如何将分组列department保留在结果中
代码调整方案
你可以选择以下任意一种方式实现预期输出:
- 方案1:分组时设置
as_index=False,用agg方法指定结果列名
def co2_footprint(value): # 若需要对分组内的flight_length求和后计算,可修改为 return value.sum() * 0.1 return value * 0.1 res = df.groupby('department', as_index=False)['flight_length'].agg( co2_footprint = co2_footprint ) print(res)
- 方案2:对原有返回结果重置索引,手动指定结果列名
def co2_footprint(value): # 若需要对分组内的flight_length求和后计算,可修改为 return value.sum() * 0.1 return value * 0.1 res = df.groupby('department')['flight_length'].apply(co2_footprint).reset_index(name='co2_footprint') print(res)
注意:如果你的计算逻辑是按部门聚合得到单条结果,需要在自定义函数中补充聚合逻辑(如sum、mean等),否则会返回逐行计算的结果。
内容的提问来源于stack exchange,提问作者le Minh Nguyen
相关产品推荐
相关产品推荐

