在Pandas中使用 pivot_table 创建透视表后,有时需要新增一行来显示每列的总和。这可以通过在创建透视表之后添加一个新的行来实现。以下是一个详细的步骤指南,包括创建示例数据、生成透视表以及添加总和行的操作。

1. 导入Pandas

确保已经安装了Pandas库,如果尚未安装,可以通过pip安装:

pip install pandas

在Python脚本或Jupyter Notebook中导入Pandas:

import pandas as pd

2. 创建示例数据

创建一个示例DataFrame:

data = {
    'Category': ['A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'],
    'SubCategory': ['X', 'Y', 'Z', 'X', 'Y', 'Z', 'X', 'Y', 'Z'],
    'Sales1': [100, 150, 200, 250, 300, 350, 400, 450, 500],
    'Sales2': [50, 75, 100, 125, 150, 175, 200, 225, 250]
}
df = pd.DataFrame(data)

3. 创建透视表

使用 pivot_table 方法创建透视表:

pivot_table = pd.pivot_table(df, values=['Sales1', 'Sales2'], index=['Category'], aggfunc='sum')

4. 添加总和行

为了在透视表中添加一行显示每列的总和,可以使用 loc 方法将总和行添加到透视表中:

# 计算每列的总和
column_sums = pivot_table.sum()

# 将总和行添加到透视表中
pivot_table.loc['Total'] = column_sums

5. 结果展示

最后,可以打印出包含总和行的透视表:

print(pivot_table)

完整代码

以下是完整的代码示例:

import pandas as pd

# 创建示例数据
data = {
    'Category': ['A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'],
    'SubCategory': ['X', 'Y', 'Z', 'X', 'Y', 'Z', 'X', 'Y', 'Z'],
    'Sales1': [100, 150, 200, 250, 300, 350, 400, 450, 500],
    'Sales2': [50, 75, 100, 125, 150, 175, 200, 225, 250]
}
df = pd.DataFrame(data)

# 创建透视表
pivot_table = pd.pivot_table(df, values=['Sales1', 'Sales2'], index=['Category'], aggfunc='sum')

# 计算每列的总和
column_sums = pivot_table.sum()

# 将总和行添加到透视表中
pivot_table.loc['Total'] = column_sums

# 输出结果
print(pivot_table)

输出结果

运行上述代码后,输出结果将是:

          Sales1  Sales2
Category                
A             450     225
B             900     450
C            1350     675
Total        2700    1350

这样,你就可以在透视表中看到每列的总和行了。这个方法适用于任何需要在透视表中添加总和行的场景。