df.pivot
时间: 2023-07-25 13:15:18 浏览: 142
`df.pivot()`是pandas中的一个函数,可以将数据表按照指定的行、列和值进行重塑,生成新的数据表。函数的语法如下:
```
df.pivot(index=None, columns=None, values=None)
```
其中,参数说明如下:
- index:指定行索引的列名或列名列表;
- columns:指定列索引的列名;
- values:指定数据表中的值的列名。
`df.pivot()`函数会返回一个新的数据表,其中行索引由`index`参数指定的列或列的组合组成,列索引由`columns`参数指定的列组成,数据由`values`参数指定的列组成。
使用`df.pivot()`函数可以方便地将数据表进行重塑、透视和汇总等操作。
相关问题
df.pivot和df.reindex,df.align 的区别?
`df.pivot`、`df.reindex` 和 `df.align` 的区别如下:
1. `df.pivot` 用于根据给定的索引/列值对重新构造DataFrame,返回一个新的DataFrame对象。而 `df.reindex` 用于对行或列进行重新标记,并返回具有新索引的DataFrame对象。
2. `df.pivot` 可以使用聚合函数来汇总重复索引/列值的数据,而 `df.reindex` 不会进行这样的操作。
3. `df.align` 用于沿着指定的轴对齐两个对象,并返回一个元组,包含两个对象的重新索引版本。
下面是 `df.pivot` 和 `df.reindex` 的使用示例:
引用:df1 = df.reindex(index=dates[0:4], columns=list(df.columns) + ['E']) [^1]
```python
import pandas as pd
import numpy as np
# 创建一个 DataFrame
df = pd.DataFrame({'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],
'B': ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'],
'C': np.random.randn(8),
'D': np.random.randn(8)})
# 对 DataFrame 进行重新索引
df1 = df.reindex(index=range(4), columns=list(df.columns) + ['E'])
print(df1)
```
输出结果:
```
A B C D E
0 foo one 0.884294 0.848049 NaN
1 bar one -0.252554 0.760753 NaN
2 foo two 0.062926 -0.225259 NaN
3 bar three 0.055329 0.785876 NaN
```
引用:pd.pivot_table(df, values='D', index=['A', 'B'], columns=['C']) [^1]
```python
import pandas as pd
import numpy as np
# 创建一个 DataFrame
df = pd.DataFrame({'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],
'B': ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'],
'C': np.random.randn(8),
'D': np.random.randn(8)})
# 使用 pivot_table() 聚合数据
pv = pd.pivot_table(df, values='D', index=['A', 'B'], columns=['C'])
print(pv)
```
输出结果:
```
C -0.902191 0.101844 0.228387 ... 1.300993 1.588940 1.756183
A B ...
bar one NaN NaN 0.011764 ... NaN NaN NaN
three NaN NaN NaN ... NaN NaN NaN
two 1.208722 NaN NaN ... NaN NaN NaN
foo one -1.459425 NaN NaN ... NaN NaN NaN
three NaN NaN NaN ... NaN NaN -0.335457
two NaN -0.877678 NaN ... 1.057251 0.183236 NaN
[6 rows x 8 columns]
```
df.pivot_table
`df.pivot_table`是Pandas库中的一个功能强大工具,用于将DataFrame重塑为表格形式,以便于进行多维度的数据分析和汇总。它允许你根据特定的行、列或值进行分组,并计算各种聚合函数(如求和、计数、平均值等)。
基本语法如下:
```python
pivot_table = df.pivot_table(values=your_column_name,
index=index_columns,
columns=column_columns,
aggfunc=aggregation_function,
fill_value=None)
```
- `values`: 需要计算的值,通常是需要汇总的列名。
- `index` 和 `columns`: 分别指定了行标签和列标签,决定了如何划分数据。
- `aggfunc`: 聚合函数,可以是内置的Pandas函数(如`sum`, `mean`, `count`等),也可以自定义函数。
- `fill_value` (可选): 当某些分组下没有数据时,填充的值,默认是None,此时会出现缺失值。
例如,如果你想按产品类别和月份总结销售额,`values`可能是"销售额",`index`是"产品类别",`columns`是"月份",`aggfunc`可以是`sum`。
阅读全文