pandas 生成数据透视表
时间: 2023-11-20 18:57:02 浏览: 78
下面是使用pandas生成数据透视表的方法和示例:
方法:
pandas.pivot_table(data, values=None, index=None, columns=None, aggfunc='mean', fill_value=None, margins=False, dropna=True, margins_name='All')
参数:
- data:DataFrame对象
- values:要聚合的列或列的列表,默认为所有数值列
- index:用于分组的列或列的列表,或者为True(使用所有其他列)
- columns:用于分组的列或列的列表,或者为True(使用所有其他列)
- aggfunc:聚合函数或函数列表,默认为'mean'
- fill_value:用于替换结果中的缺失值,默认为None
- margins:添加行/列边距,默认为False
- dropna:如果为True,则删除所有包含缺失值的行/列,默认为True
- margins_name:边距的名称,默认为'All'
示例:
假设我们有以下数据集:
| Name | City | Gender | Age | Height | Weight |
|------|------|--------|-----|--------|--------|
| John | LA | Male | 25 | 6'0" | 180 |
| Jane | SF | Female | 30 | 5'5" | 120 |
| Bob | NY | Male | 50 | 5'8" | 150 |
| Mary | LA | Female | 40 | 5'6" | 130 |
我们可以使用以下代码生成一个简单的数据透视表:
```python
import pandas as pd
data = pd.read_csv('data.csv')
pivot_table = pd.pivot_table(data, values=['Age', 'Height', 'Weight'], index=['City'], columns=['Gender'], aggfunc='mean')
print(pivot_table)
```
输出结果为:
```
Age Height Weight
Gender Female Male Female Male Female Male
City
LA 40.0 25.0 5.666667 6.0 130.000000 180.0
NY NaN 50.0 NaN 5.8 NaN 150.0
SF 30.0 NaN 5.500000 NaN 120.000000 NaN
```
该数据透视表显示了每个城市中男性和女性的平均年龄,身高和体重。
阅读全文