首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将行交换为多个数据格式?

如何将行交换为多个数据格式?
EN

Stack Overflow用户
提问于 2022-03-17 04:07:40
回答 1查看 48关注 0票数 1

我有一个字典,其中每个值包含许多不同的DataFrame,它们是按Name分组的,但我想将它们按Time分组。我试图应用group/ apply / split类型函数,但由于它们不是单个DataFrame (而是字典中的拆分DataFrames ),所以我有点卡住了。

带有2个数据的字典的玩具示例:

代码语言:javascript
运行
复制
{'df1':    Name  Time
 0  Greg  1-10
 1  Greg  5-10
 'df2':     Name  Time
 0   Jeff  5-10
 1  Jeff  1-10}

复制:

代码语言:javascript
运行
复制
d = {'df1': pd.DataFrame({'Name': ["Jeff", "Greg"], 'Times': ["1-5", "5-10"]}), 'df2': pd.DataFrame({'Name': ["Jeff", "Greg"], 'Times': ["5-10", "1-5"]})}

期望产出:

代码语言:javascript
运行
复制
{'df1':    Name  Time
 0  Greg  1-10
 1  Jeff  1-10
 'df2':     Name  Time
 0  Jeff  5-10
 1  Greg  5-10}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-17 04:16:35

IIUC,您的数据如下(让我们称之为data):

代码语言:javascript
运行
复制
{'df1':    Name.  Time
 0  Greg.  1-10
 1  Greg.  5-10,
 'df2':     Name  Time
 0   Jeff  5-10
 1  Jeff.  1-10}

这里有一个选项:concat + groupby "Time“+ dict:

代码语言:javascript
运行
复制
out = {f'df{i}': df for i, (_, df) in 
       enumerate(pd.concat((data['df1'].rename(columns={'Name.':'Name'}), 
                            data['df2'])).groupby('Time'), 1)}

输出:

代码语言:javascript
运行
复制
{'df1':     Name  Time
 0  Greg.  1-10
 1  Jeff.  1-10,
 'df2':     Name  Time
 1  Greg.  5-10
 0   Jeff  5-10}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71506991

复制
相关文章

相似问题

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