pivot_table() 为参数 'values' 获取多个值,怎么办
时间: 2023-12-11 10:02:40 浏览: 91
如果您想在 `pivot_table()` 函数中传递多个值作为参数,可以将这些值作为列表传递给 `values` 参数。例如:
```python
import pandas as pd
# 创建示例数据集
data = {'A': ['foo', 'foo', 'foo', 'bar', 'bar', 'bar'],
'B': ['one', 'one', 'two', 'two', 'one', 'one'],
'C': [1, 2, 3, 4, 5, 6],
'D': [7, 8, 9, 10, 11, 12]}
df = pd.DataFrame(data)
# 使用 pivot_table() 函数生成透视表
table = pd.pivot_table(df, values=['C', 'D'], index=['A', 'B'], aggfunc='sum')
# 打印透视表
print(table)
```
在上面的示例中,我们创建了一个示例数据集,并使用 `pivot_table()` 函数生成透视表。我们将 `C` 和 `D` 列作为要聚合的值传递给 `values` 参数,并使用 `['A', 'B']` 作为行索引。最后,我们使用 `aggfunc='sum'` 指定要应用于聚合值的聚合函数。输出结果将同时包含 `C` 和 `D` 列的和。
相关问题
pivot_table可以用多个aggfunc值吗?
是的,pivot_table可以使用多个aggfunc值。您可以指定一个字典,将每个列名映射到一个aggfunc。例如,可以使用以下代码制作具有多个aggfunc的透视表:
``` python
import pandas as pd
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Emma'],
'Class': ['A', 'B', 'C', 'A', 'B'],
'Subject': ['Math', 'Math', 'Math', 'Science', 'Science'],
'Score': [80, 85, 90, 70, 75]}
df = pd.DataFrame(data)
table = pd.pivot_table(df, index=['Class'], columns=['Subject'], values=['Score'],
aggfunc={'Score': ['sum', 'mean', 'max', 'min']})
print(table)
```
输出:
```
Score
max mean min sum
Subject Math Science Math Math
Class
A 80 70.0 80 150
B 85 75.0 85 160
C 90 NaN 90 90
```
这个透视表使用了4个aggfunc,分别是sum、mean、max和min,用于计算每个班级在每个学科中的得分总和、平均值、最大值和最小值。
pd.pivot_table的参数
pd.pivot_table函数有多个参数,下面是一些常用的参数:
- data:要进行数据透视的数据集。
- values:被聚合的列或列的列表。
- index:用于分组的列或列的列表。
- columns:用于创建新列的列或列的列表。
- aggfunc:用于聚合数据的函数,默认为np.mean。
- fill_value:用于替换缺失值的值。
- margins:是否添加汇总行和列,默认为False。
- dropna:是否丢弃包含缺失值的行,默认为True。
请注意,这只是一些常用参数,还有其他参数可以根据需要使用。