首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Pandas中使用melt()

在Pandas中使用melt()
EN

Stack Overflow用户
提问于 2022-06-13 18:48:41
回答 1查看 82关注 0票数 0

试图将以下数据融为一体,结果是4行--一列用于"John-1“,包含他的前数据,一行用于"John-2”,其中一行包含他的后数据,一行用于"Kelly-1“,在数据之前包含她,一行用于"Kelly-2”,其中一列包含她的后数据。列将是“名称”、“重量”和“高度”。这能仅用熔融函数来完成吗?

代码语言:javascript
复制
df = pd.DataFrame({'Name': ['John', 'Kelly'],
                 'Weight Before': [200, 175], 
                 'Weight After': [195, 165],
                 'Height Before': [6, 5],
                 'Height After': [7, 6]})
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-13 18:51:50

使用pandas.wide_to_long函数如下所示:

代码语言:javascript
复制
pd.wide_to_long(df, ['Weight', 'Height'], 'Name', 'grp', ' ', '\\w+').reset_index()

    Name     grp  Weight  Height
0   John  Before     200       6
1  Kelly  Before     175       5
2   John   After     195       7
3  Kelly   After     165       6

或者您也可以从pyjanitor中使用pivot_longer,如下所示:

代码语言:javascript
复制
import janitor
df.pivot_longer('Name', names_to = ['.value', 'grp'], names_sep = ' ')

    Name     grp  Weight  Height
0   John  Before     200       6
1  Kelly  Before     175       5
2   John   After     195       7
3  Kelly   After     165       6
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72607710

复制
相关文章

相似问题

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