如何用python给透视表加一列总计和占比
时间: 2024-10-11 07:06:12 浏览: 53
左手pandas右手Python,带你学习数据透视表
在Python的Pandas库中,创建透视表并添加总计和占比通常是通过`pivot_table`函数以及一些数学计算来完成的。以下是一个步骤示例:
首先,假设我们有一个DataFrame `df`,我们要基于某些列进行分组,并计算每个组别的总计和每项的百分比。
```python
# 假设我们有以下数据
data = {
'Category': ['A', 'B', 'A', 'B', 'A', 'B', 'A', 'A'],
'Amount': [10, 20, 30, 40, 50, 60, 70, 80],
'Year': [2020, 2020, 2021, 2021, 2020, 2020, 2021, 2021]
}
df = pd.DataFrame(data)
# 创建透视表
pt = pd.pivot_table(df, values='Amount', index=['Category'], columns=['Year'], aggfunc='sum')
# 添加总计列
total_amount = pt.sum(axis=1)
pt['Total'] = total_amount
# 计算每项占总和的百分比
pt['Percentage'] = pt['Amount'] / pt['Total']
```
在这个例子中:
- `values='Amount'` 表明我们将按'Amount'列求和。
- `index=['Category']` 和 `columns=['Year']` 定义了分组依据。
- `aggfunc='sum'` 指定对数值进行求和。
最后两步分别计算了每组的总计和各条目占总计的比例。
阅读全文