如何在Pandas透视表中按条件对指定行求和与差值计算
透视表新增自定义计算行的实现方法
核心思路
提取透视表中目标行的数据完成求和、差值计算,再将计算结果作为新行合并回原透视表。
具体代码实现
假设你已经生成了索引包含a、b、e、f的透视表df_1,以下是完整实现步骤:
- 导入依赖并模拟透视表(替换为你的真实数据即可)
import pandas as pd # 模拟已生成的透视表df_1 data = { 'math_score': [82, 91, 76, 87], 'english_score': [78, 85, 72, 83] } df_1 = pd.DataFrame(data, index=['a', 'b', 'e', 'f'])
- 计算新增行的数据
# 计算a行与b行的求和行 sum_ab = df_1.loc[['a', 'b']].sum(axis=0) sum_ab.name = 'total a + b' # 计算f行与e行的差值行 diff_fe = df_1.loc['f'] - df_1.loc['e'] diff_fe.name = 'total f - e'
- 合并新增行到原透视表
推荐使用pd.concat(兼容新版pandas):
df_final = pd.concat([df_1, sum_ab.to_frame().T, diff_fe.to_frame().T])
若使用旧版pandas,也可使用append:
df_final = df_1.append([sum_ab, diff_fe])
结果说明
执行后df_final会保留原透视表的所有行,同时新增total a + b和total f - e两行,每行各列的值对应目标行的求和/差值结果。
内容的提问来源于stack exchange,提问作者hoa tran
相关产品推荐
相关产品推荐

