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)