datafrme pivot方法

这里写自定义目录标题

pandas.core.frame.DataFrame的pivot方法
pivot(index=None, columns=None, values=None) method of pandas.core.frame.DataFrame instance
返回给定行/列值的新的DataFrame对象

根据列值重塑数据(生成“数据透视表”)。 使用指定index /columns中的唯一值来形成结果DataFrame的轴。 此函数不支持数据聚合,多个值将导致列中的MultiIndex。

Parameters
----------
index : string or object, optional
用于生成新表索引的列。如果为None,则默认使用现有索引。
columns : string or object
用于生成新表列名的列。
values : string, object or a list of the previous, optional
用于填充新表值的列。如果未指定,那么所有剩余列都将被使用,结果将具有分层索引。

Returns
-------
DataFrame
返回重组的DataFrame

Raises
------
ValueError:
indexcolumns有多个值时出现。如果需要聚合,则应该使用DataFrame.pivot_table方法。

See Also
--------
DataFrame.pivot_table : 处理一个index/column对应多个值的情况
duplicate values for one index/column pair.
DataFrame.unstack : 基于值而不是列进行透视

Examples
--------
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  zoo
0   one   A    1    x
1   one   B    2    y
2   one   C    3    z
3   two   A    4    q
4   two   B    5    w
5   two   C    6    t

df.pivot(index=‘foo’, columns=‘bar’, values=‘baz’)

bar  A   B   C
foo
one  1   2   3
two  4   5   6

新表格中,index来自原来表格的foo列的值(one,two),columns来自原来表格中bar列的值(A,B,C), values为原来baz列的值

df.pivot(index=‘foo’, columns=‘bar’)[‘baz’]

bar  A   B   C
foo
one  1   2   3
two  4   5   6

df.pivot(index=‘foo’, columns=‘bar’, values=[‘baz’, ‘zoo’])

      baz       zoo
bar   A  B  C   A  B  C
foo
one   1  2  3   x  y  z
two   4  5  6   q  w  t

这里为values指定了一个列表,则返回的是一个分层索引

A ValueError is raised if there are any duplicates.

df = pd.DataFrame({“foo”: [‘one’, ‘one’, ‘two’, ‘two’],
“bar”: [‘A’, ‘A’, ‘B’, ‘C’],
“baz”: [1, 2, 3, 4]})
df

   foo bar  baz
0  one   A    1
1  one   A    2
2  two   B    3
3  two   C    4

这里前两行同一个index和columns对对应了多个不同的值。

 df.pivot(index='foo', columns='bar', values='baz')
 Traceback (most recent call last):
   ...
ValueError: Index contains duplicate entries, cannot reshape
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值