加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – pandas将数据帧转换为3d数据

发布时间:2020-12-20 12:21:13 所属栏目:Python 来源:网络整理
导读:似乎有很多可能将平面表数据转换为3d数组,但我在某种程度上找不到一个有效的方法:假设我有一些数据有列= [‘name’,’type’,’date’,’值’].当我试图转过头时 pivot(index='name',columns=['type','date'],values='value') 我明白了 ValueError: Buffer
似乎有很多可能将平面表数据转换为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',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,3,4]})

pt = df.pivot_table(values='value','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关键字参数应该分别用行和列替换.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读