首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >熊猫:根据栏目中的独特价值创建栏目

问熊猫:根据栏目中的独特价值创建栏目
EN

Stack Overflow用户
提问于 2021-08-13 19:40:50
回答 2查看 304关注 0票数 0

我有一个有三列的Pandas数据框架,其中两列有标识符(日期和id),另一列有我真正关心的值(值)。看起来是这样的:

代码语言:javascript
复制
,date,id,value
0,20210801,269277473,-1114389.6
1,20210802,269277473,-1658061.0
2,20210803,269277473,-1338010.2
3,20210804,269277473,-475779.6
4,20210805,269277473,-1417980.0
5,20210806,269277473,-1673400.6
6,20210807,269277473,-1438969.8
12,20210801,269277476,504300.0
13,20210802,269277476,519889.8
14,20210803,269277476,513899.4
15,20210804,269277476,526258.8
16,20210805,269277476,524730.0
17,20210806,269277476,548010.6
18,20210807,269277476,539031.0
24,20210801,269277480,477399.0
25,20210802,269277480,443499.0
26,20210803,269277480,394801.2
27,20210804,269277480,440100.0
28,20210805,269277480,455499.6
29,20210806,269277480,441100.2
30,20210807,269277480,438899.4

我希望将这些值滚动到一个表中,其中索引中的日期、列是is,而内容是值,如下所示:

代码语言:javascript
复制
date,269277473,269277476,269277480
20210801,-1114389.6,504300.0,477399.0
20210802,-1658061.0,519889.8,443499.0
20210803,-1338010.2,513899.4,394801.2
20210804,-475779.6,526258.8,440100.0
20210805,-1417980.0,524730.0,455499.6
20210806,-1673400.6,548010.6,441100.2
20210807,-1438969.8,539031.0,438899.4

鉴于我的表我们巨大(数亿的价值),什么是最有效的方式来实现这一点?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-08-13 19:45:17

您需要应用pivot

代码语言:javascript
复制
df.pivot(*df)

在您的情况下(根据列的顺序),它等价于:

代码语言:javascript
复制
df.pivot(index='date', columns='id', values='value')

产出:

代码语言:javascript
复制
id        269277473  269277476  269277480
date                                     
20210801 -1114389.6   504300.0   477399.0
20210802 -1658061.0   519889.8   443499.0
20210803 -1338010.2   513899.4   394801.2
20210804  -475779.6   526258.8   440100.0
20210805 -1417980.0   524730.0   455499.6
20210806 -1673400.6   548010.6   441100.2
20210807 -1438969.8   539031.0   438899.4
票数 3
EN

Stack Overflow用户

发布于 2021-08-13 19:45:36

使用pivot

代码语言:javascript
复制
>>> df.pivot(index='date', columns='id', values='value')
id        269277473  269277476  269277480
date
20210801 -1114389.6   504300.0   477399.0
20210802 -1658061.0   519889.8   443499.0
20210803 -1338010.2   513899.4   394801.2
20210804  -475779.6   526258.8   440100.0
20210805 -1417980.0   524730.0   455499.6
20210806 -1673400.6   548010.6   441100.2
20210807 -1438969.8   539031.0   438899.4

如果有其他列,则可以使用pivot_table对每个列的值(平均值、和、.)应用函数。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68777630

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档