我想要创建一个新的数据,我有3个原始数据。3数据格式为:Name|col1|col2。名称与所有数据格式相同,区别是来自col1和col2的值。
df1:
abc 1 2
xyz 3 4df2:
abc 5 6
xyz 7 8df3:
abc 9 10
xyz 11 12新的数据格式应该是:
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发布于 2021-12-12 18:23:09
这应该是可行的,您可能需要添加其他几个步骤才能以您需要的格式进入,但使它的逻辑就在这里了。
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
这会让你:
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 df2https://stackoverflow.com/questions/70326298
复制相似问题