DataFrame.pivot(self, index=None, columns=None, values=None) → 'DataFrame' [source]
返回按给定索引/列值组织的重新构造的DataFrame
。
根据列值重塑数据(生成一个 "pivot"
表)。使用来自指定索引/列的惟一值来形成结果DataFrame
的轴。此函数不支持数据聚合,多个值将导致列中的多索引。更多关于整形的信息,请参阅User Guide 。
参数: | index : 用于制作新 则使用现有索引。 columns : 位置参数传递给 values : 于填充新frame值的列。如果未指定, 将使用所有剩余的列, 并且结果将具有按层次结构索引的列。 在版本0.23.0中更改:还接受列名称列表。 |
返回值: |
返回调整后的 |
Raises: | ValueError: 如果有任何 需要聚合时使用 |
Notes
有关更好的控制,请参阅分层索引文档以及相关的堆栈/非堆栈方法。
例子
1)单个值字段
import pandas as pd # 创建数据框 df = pd.DataFrame({ 'foo': ['one', 'one', 'one', 'two', 'two', 'two'], 'bar': ['A', 'B', 'C', 'A', 'B', 'C'], 'baz': [1, 2, 3, 4, 5, 6], 'zoo': ['x', 'y', 'z', 'q', 'w', 't'] }) # 使用 pivot 创建透视表 result = df.pivot(index='foo', columns='bar', values='baz') print(result)
2)同时处理多个值字段(baz 和 zoo)
import pandas as pd # 创建数据框 df = pd.DataFrame({ 'foo': ['one', 'one', 'one', 'two', 'two', 'two'], 'bar': ['A', 'B', 'C', 'A', 'B', 'C'], 'baz': [1, 2, 3, 4, 5, 6], 'zoo': ['x', 'y', 'z', 'q', 'w', 't'] }) result = df.pivot(index='foo', columns='bar', values=['baz', 'zoo']) print(result)