python pivot 后面加sum
时间: 2023-10-13 15:25:05 浏览: 144
在使用Python中的pivot函数时,可以在其后面加上sum参数来计算每个组的总和。
例如,假设有一个名为df的数据框,它有三列:A、B和C。我们可以使用pivot函数将它们重塑成一个新的数据框,其中A是行,B是列,C是值。然后,我们可以使用sum参数来计算每个组的总和。
代码如下:
```
import pandas as pd
# 创建数据框
df = pd.DataFrame({'A': ['foo', 'foo', 'bar', 'bar', 'foo', 'foo'],
'B': ['one', 'one', 'one', 'two', 'two', 'one'],
'C': [1, 2, 3, 4, 5, 6]})
# 使用pivot函数重塑数据框
df_pivot = df.pivot(index='A', columns='B', values='C')
# 计算每个组的总和
df_sum = df_pivot.sum()
print(df_sum)
```
输出如下:
```
B
one 9
two 9
dtype: int64
```
可以看到,输出结果是一个Series,其中包含每个组的总和。在这个例子中,组one的总和是9,组two的总和也是9。
相关问题
Python pivot 参数意义
在 Python 中,pivot 参数通常是指用于指定数据透视表中行索引的列,或者用于指定聚合数据的列。具体来说,pivot 参数的作用取决于使用的函数。
在 pandas 中,pivot 方法的 pivot 参数用于指定数据透视表中行索引的列,例如:
```python
import pandas as pd
df = pd.read_csv('data.csv')
table = pd.pivot_table(df, values='D', index=['A', 'B'], columns=['C'])
```
在上面的代码中,pivot 参数指定了数据透视表中的行索引列为 ['A', 'B']。
而在 matplotlib 中,pivot 参数用于指定聚合数据的列,例如:
```python
import matplotlib.pyplot as plt
data = {'a': [1, 2, 3], 'b': [4, 5, 6], 'c': [7, 8, 9]}
df = pd.DataFrame(data)
table = pd.pivot_table(df, values=['a', 'b'], index=['c'], aggfunc='sum')
plt.plot(table.index, table['a', 'sum'], label='a')
plt.plot(table.index, table['b', 'sum'], label='b')
plt.legend()
plt.show()
```
在上面的代码中,pivot 参数指定了要聚合的列为 ['a', 'b']。
python pivot的用法
Python中的pivot(数据透视表)函数是用来重组和转换数据的重要工具,其用法如下:
1. DataFrame.pivot(index=None, columns=None, values=None): 根据指定的索引、列、值对原DataFrame进行透视。
- index:用作行索引的列名或列名列表。
- columns:用作列索引的列名或列名列表。
- values:要聚合的列名或列名列表,如果省略,则所有列都聚合。
2. DataFrame.pivot_table(values=None, index=None, columns=None,aggfunc=’mean’, fill_value=None, margins=False,dropna=True): 根据指定的索引、列、值对原DataFrame进行透视并计算汇总统计量。
- values:要聚合的列名或列名列表,如果省略,则所有列都聚合。
- index:用作行索引的列名或列名列表。
- columns:用作列索引的列名或列名列表。
- aggfunc:聚合函数,默认为'mean'(平均值),可以是'min'、'max'、'sum'等。
- fill_value:用于填充缺失值的默认值。
- margins:如果为True,添加汇总行和列,默认为False。
- dropna:如果为True,则删除包含任何缺失值的行或列,默认为True。
举个例子:
```
import pandas as pd
data = {'date':['2021-01-01','2021-01-01','2021-01-02','2021-01-02'],
'country':['China','Japan','China','Japan'],
'value':[100,200,300,400]}
df = pd.DataFrame(data)
print(df)
# 透视表
pivot_df = df.pivot(index='date',columns='country',values='value')
print(pivot_df)
# 透视表并计算平均数
pivot_table_df = df.pivot_table(values='value', index='date',columns='country',aggfunc='mean')
print(pivot_table_df)
```
输出结果:
```
date country value
0 2021-01-01 China 100
1 2021-01-01 Japan 200
2 2021-01-02 China 300
3 2021-01-02 Japan 400
country China Japan
date
2021-01-01 100 200
2021-01-02 300 400
country China Japan
date
2021-01-01 100 200
2021-01-02 300 400
```
阅读全文