首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >枢轴Pandas Python Dataframe

枢轴Pandas Python Dataframe
EN

Stack Overflow用户
提问于 2021-08-12 10:35:55
回答 1查看 33关注 0票数 0

我正在处理这个数据集:

代码语言:javascript
运行
复制
# dummy data
import pandas as pd
data = pd.DataFrame({None : ['Company', 'AAA', 'BBB', 'CCC','Company', 'AAA' ],
                     None : ['Copper', 'Copper', 'Iron', 'Iron', 'Gold', 'Gold'],
                     "NaN" : ['Net','Gross', 'Net','Gross', 'Net','Gross' ], 
                     "11/01/2021" : [1,2,3,4,5,6],
                     "12/01/2021" : [10,11,12,13,14,15],
                     "13/01/2021" : [19,20,21,22,23,25]})
data

我试着得到这个输出:

我尝试使用堆栈/熔体,但无法获得这种格式的数据。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-12 10:48:37

您可以使用.melt()转换表,然后使用.rename().sort_values().reset_index()格式化为所需的列名和行序列:

代码语言:javascript
运行
复制
(data.rename({None: 'Material', 'NaN': 'Revenue'}, axis=1)
     .melt(id_vars=['Material', 'Revenue'], var_name='Month', value_name='Value')
     .sort_values(['Material', 'Revenue'], ascending=[True, False])
).reset_index(drop=True)

结果:

代码语言:javascript
运行
复制
   Material Revenue       Month  Value
0    Copper     Net  11/01/2021      1
1    Copper     Net  12/01/2021     10
2    Copper     Net  13/01/2021     19
3    Copper   Gross  11/01/2021      2
4    Copper   Gross  12/01/2021     11
5    Copper   Gross  13/01/2021     20
6      Gold     Net  11/01/2021      5
7      Gold     Net  12/01/2021     14
8      Gold     Net  13/01/2021     23
9      Gold   Gross  11/01/2021      6
10     Gold   Gross  12/01/2021     15
11     Gold   Gross  13/01/2021     25
12     Iron     Net  11/01/2021      3
13     Iron     Net  12/01/2021     12
14     Iron     Net  13/01/2021     21
15     Iron   Gross  11/01/2021      4
16     Iron   Gross  12/01/2021     13
17     Iron   Gross  13/01/2021     22
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68755793

复制
相关文章

相似问题

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