首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从多个数据中创建数据

从多个数据中创建数据
EN

Stack Overflow用户
提问于 2021-12-12 18:04:04
回答 1查看 174关注 0票数 0

我想要创建一个新的数据,我有3个原始数据。3数据格式为:Name|col1|col2。名称与所有数据格式相同,区别是来自col1col2的值。

df1:

代码语言:javascript
复制
abc  1  2
xyz  3  4

df2:

代码语言:javascript
复制
abc  5  6
xyz  7  8

df3:

代码语言:javascript
复制
abc  9  10
xyz  11  12

新的数据格式应该是:

代码语言:javascript
复制
abc(df1,df2)  1  6
abc(df1,df3)  1  10
abc(df2,df3)  5  10
abc(df3,df1)  5  2
abc(df3,df1)  9  2
abc(df3,df2)  9  6
xyz(df1,df2)  3  8
xyz(df1,df3)  3  12
xyz(df2,df1)  7  4
xyz(df2,df3)  7  12
xyz(df3,df1)  11  4
xyz(df3,df2)  11  8
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-12 18:23:09

这应该是可行的,您可能需要添加其他几个步骤才能以您需要的格式进入,但使它的逻辑就在这里了。

代码语言:javascript
复制
df1['key'] = 'df1'
df2['key'] = 'df2'
df3['key'] = 'df3'


(pd.merge(
    pd.concat([df1, df2, df3]), 
    pd.concat([df1, df2, df3]), 
    on  = 0).
query('key_x != key_y').
drop(columns = ['2_x', '1_y']))

假设当前df列被调用为0到2

这会让你:

代码语言:javascript
复制
      0  1_x key_x  2_y key_y
1   abc    1   df1    6   df2
2   abc    1   df1   10   df3
3   abc    5   df2    2   df1
5   abc    5   df2   10   df3
6   abc    9   df3    2   df1
7   abc    9   df3    6   df2
10  xyz    3   df1    8   df2
11  xyz    3   df1   12   df3
12  xyz    7   df2    4   df1
14  xyz    7   df2   12   df3
15  xyz   11   df3    4   df1
16  xyz   11   df3    8   df2
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70326298

复制
相关文章

相似问题

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