Python pandas.DataFrame.pivot函数方法的使用

DataFrame.pivot(self, index=None, columns=None, values=None) → 'DataFrame'       [source]

返回按给定索引/列值组织的重新构造的DataFrame

根据列值重塑数据(生成一个 "pivot" 表)。使用来自指定索引/列的惟一值来形成结果DataFrame的轴。此函数不支持数据聚合,多个值将导致列中的多索引。更多关于整形的信息,请参阅User Guide 。

参数

index :strobject, 可选

用于制作新frame索引的列。如果为None,则使用现有索引。

columns :strobject

位置参数传递给func

values :str, object 或 之前的列表, 可选

于填充新frame值的列。如果未指定,将使用所有剩余的列,并且结果将具有按层次结构索引的列。

在版本0.23.0中更改:还接受列名称列表。

返回值

DataFrame

返回调整后的DataFrame

Raises

ValueError:

如果有任何index,则列组合具有多个值。需要聚合时使用DataFrame.pivot_table

Notes

有关更好的控制,请参阅分层索引文档以及相关的堆栈/非堆栈方法。

例子

>>> 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']})>>> df    foo   bar  baz  zoo0   one   A    1    x1   one   B    2    y2   one   C    3    z3   two   A    4    q4   two   B    5    w5   two   C    6    t

>>> df.pivot(index='foo', columns='bar', values='baz')bar  A   B   Cfooone  1   2   3two  4   5   6

>>> df.pivot(index='foo', columns='bar')['baz']bar  A   B   Cfooone  1   2   3two  4   5   6

>>> df.pivot(index='foo', columns='bar', values=['baz', 'zoo'])      baz       zoobar   A  B  C   A  B  Cfooone   1  2  3   x  y  ztwo   4  5  6   q  w  t

如果存在重复项,则会引发ValueError
>>> df = pd.DataFrame({"foo": ['one', 'one', 'two', 'two'],...                    "bar": ['A', 'A', 'B', 'C'],...                    "baz": [1, 2, 3, 4]})>>> df   foo bar  baz0  one   A    11  one   A    22  two   B    33  two   C    4

注意 : 前两行对于我们的index 和column参数是相同的

>>> df.pivot(index='foo', columns='bar', values='baz')Traceback (most recent call last):   ...ValueError: Index contains duplicate entries, cannot reshape

免责声明:以上内容(如有图片或视频亦包括在内)有转载其他网站资源,如有侵权请联系删除

咨询热线(9:00 - 18:00)
0755 - 29812418
微信公众号二维码
微信公众号二维码
微信公众号
返回顶部