首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有新列的熊猫枢轴表

带有新列的熊猫枢轴表
EN

Stack Overflow用户
提问于 2020-04-30 22:01:59
回答 1查看 410关注 0票数 1

我有以下数据:

代码语言:javascript
复制
df = pd.DataFrame.from_dict({'id' : ['001', '002', '003'], 'name' : ['Louis', 'Tom', 'Jane'],
                     'Operating Systems': [67, 54, 77], 'Data Structures' : [88, 67, 90], 'Calculus' : [71, 53, 66]})

它显示了下表:

代码语言:javascript
复制
id    name    Operating Systems    Data Structures    Calculus 
001   Louis   67                   88                 71
002   Tom     54                   67                 53
003   Jane    77                   90                 66

我要下表:

代码语言:javascript
复制
id    name    subject             mark
001   Louis   Operating Systems   67
002   Tom     Data Structures     88
003   Jane    Calculus            71
001   Louis   Operating Systems   54
002   Tom     Data Structures     67
003   Jane    Calculus            53
001   Louis   Operating Systems   77
002   Tom     Data Structures     90
003   Jane    Calculus            66

如何将我的数据转换为获得这个结果?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-30 22:08:06

使用df.melt

代码语言:javascript
复制
In [875]: df.melt(id_vars=['id','name'], var_name='subject', value_name='mark')                                                                                                                             
Out[875]: 
    id   name            subject  mark
0  001  Louis  Operating Systems    67
1  002    Tom  Operating Systems    54
2  003   Jane  Operating Systems    77
3  001  Louis    Data Structures    88
4  002    Tom    Data Structures    67
5  003   Jane    Data Structures    90
6  001  Louis           Calculus    71
7  002    Tom           Calculus    53
8  003   Jane           Calculus    66

set_indexstack结合使用

代码语言:javascript
复制
In [877]: df.set_index(['id','name']).stack().reset_index(name='mark').rename(columns={'level_2':'subject'})

Out[877]: 
    id   name            subject  mark
0  001  Louis  Operating Systems    67
1  001  Louis    Data Structures    88
2  001  Louis           Calculus    71
3  002    Tom  Operating Systems    54
4  002    Tom    Data Structures    67
5  002    Tom           Calculus    53
6  003   Jane  Operating Systems    77
7  003   Jane    Data Structures    90
8  003   Jane           Calculus    66
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61533498

复制
相关文章

相似问题

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