似乎有很多可能将平面表数据转换为3d数组,但我在某种程度上找不到一个有效的方法:假设我有一些数据有列= [‘name’,’type’,’date’,’值’].当我试图转过头时
pivot(index='name', columns=['type', 'date'], values='value')
我明白了
ValueError: Buffer has wrong number of dimensions (expected 1, got 2)
我是否可以阅读开发熊猫的文档?看起来这就是那里描述的用法.我正在跑0.8只熊猫.
我想,我想知道我是否有一个MultiIndex [‘x’,’y’,’z’]系列,是否有大熊猫方式将其放入面板?我可以使用groupby并完成工作,但这几乎就像我在numpy中组装n-d数组时所做的那样.看起来像一个相当通用的操作,所以我想它可能已经实现.
解决方法:
pivot仅支持使用单个列生成列.您可能希望使用pivot_table
来生成使用多个列的数据透视表,例如
pandas.tools.pivot.pivot_table(your_dataframe, values='value', index='name', columns=['type', 'date'], aggfunc='sum')
API reference和documentation for pivot中提到的分层列与您有多个值字段而不是多个类别的情况相关.
假设’type’和’date’是类别,其值应该用作列名,那么你应该使用pivot_table.
但是,如果要为同一类别(例如“类型”)的不同值字段使用单独的列,则应使用pivot而不指定value列,将类别指定为columns参数.
例如,假设您有此DataFrame:
df = DataFrame({'name': ['A', 'B', 'A', 'B'], 'type': [1, 1, 2, 2], 'date': ['2012-01-01', '2012-01-01', '2012-02-01', '2012-02-01'], 'value': [1, 2, 3, 4]})
pt = df.pivot_table(values='value', index='name', columns=['type', 'date'])
p = df.pivot('name', 'type')
pt将是:
type 1 2
date 2012-01-01 2012-02-01
name
A 1 3
B 2 4
和p将是:
date value
type 1 2 1 2
name
A 2012-01-01 2012-02-01 1 3
B 2012-01-01 2012-02-01 2 4
注意:对于pandas版本< 0.14.0,index和columns关键字参数应该分别用行和列替换.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。