首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按组排序数据透视表

按组排序数据透视表
EN

Stack Overflow用户
提问于 2019-12-12 04:59:49
回答 1查看 153关注 0票数 0

我正在为熊猫的数据透视表的使用而苦苦挣扎。

我有一个包含3列的数据框架:公司名称、日期和订单数。

我正在尝试以这样一种方式来旋转数据帧,以便能够看到前十大客户。

例如,假设我有

代码语言:javascript
复制
name | date | orders
John | 2017 | 100
John | 2018 | 200
John | 2019 | 300
Mary | 2017 | 50
Mary | 2018 | 50
Mary | 2019 | 1000

我想以这样的方式旋转它,这样我就能看到它了

代码语言:javascript
复制
name
date  2017 | 2018 | 2019
John  100  | 200  | 300
Mary  50   | 50   | 1000

并按订单总量排序,因此在本例中,Mary应该先排序,因为她总共有1100个订单。

我不能在组中进行排序,它输出的是Mary 1000 cannot,John 300 sorting和John 200 3.3(举个例子)

另外,可能有点不相关,但我也注意到,当旋转时,它会抛出科学表示法的结果(尽管df在没有它的情况下显示数字),如果我禁用SciNot,它会将值转换为浮点数,你知道为什么会这样吗?

EN

回答 1

Stack Overflow用户

发布于 2019-12-12 05:05:36

尝试:

代码语言:javascript
复制
df_out = df.pivot('name','date')['orders']
df_out = df_out.assign(sortkey = df_out.sum(axis=1))\
               .sort_values('sortkey', ascending=False)\
               .drop('sortkey', axis=1)

输出:

代码语言:javascript
复制
date  2017  2018  2019
name                  
Mary    50    50  1000
John   100   200   300
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59293984

复制
相关文章

相似问题

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