pandas如何按指定列分组统计DataFrame数值列合计值
问题原因
你之前的代码把Sensor和Total两列都作为分组键传入groupby(),拆分逻辑变成了匹配「传感器类型+Total值」的唯一组合,同个Sensor下不同的Total值会被拆到独立分组,自然无法完成同Sensor的Total值累加,最后返回的是每一行自身的Total值。
正确实现代码
只需要将分组键改为仅Sensor列,求和后重命名结果列即可:
import pandas as pd df = pd.DataFrame({'Sensor': ['strain', 'water', 'water', 'ultrassonic', 'strain'], 'Total': [1,10,20,5,9], 'Columns_3': ['A', 'B', 'C', 'D', 'E']}) # 若需要按Sensor名称排序输出,可开启sort=True(默认值) # df_result = df.groupby('Sensor', as_index=False)['Total'].sum().rename(columns={'Total':'Total_final'}) # 保留Sensor在原表中首次出现的顺序,和你给出的预期输出顺序完全匹配 df_result = df.groupby('Sensor', as_index=False, sort=False)['Total'].sum().rename(columns={'Total':'Total_final'}) print(df_result)
运行输出
Sensor Total_final 0 strain 10 1 water 30 2 ultrassonic 5
内容的提问来源于stack exchange,提问作者Jane Borges
相关产品推荐
相关产品推荐

