Python pandas:合并两个没有键的表(将2个数据帧与广播的所有元素相乘; NxN数据帧) [英] Python pandas : Merge two tables without keys (Multiply 2 dataframes with broadcasting all elements; NxN dataframe)
本文介绍了Python pandas:合并两个没有键的表(将2个数据帧与广播的所有元素相乘; NxN数据帧)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我要合并2个具有广播关系的数据框:
没有通用索引,只想查找2个数据框中的所有行对。
因此,要使N行数据框x M行数据框= N * M行数据框。
是否有任何规则可以在不使用itertool的情况下实现?
I want to merge 2 dataframes with broadcast relationship: No common index, just want to find all pairs of the rows in the 2 dataframes. So want to make N row dataframe x M row dataframe = N*M row dataframe. Is there any rule to make this happen without using itertool?
DF1=
id quantity
0 1 20
1 2 23
DF2=
name part
0 'A' 3
1 'B' 4
2 'C' 5
DF_merged=
id quantity name part
0 1 20 'A' 3
1 1 20 'B' 4
2 1 20 'C' 5
3 2 23 'A' 3
4 2 23 'B' 4
5 2 23 'C' 5
推荐答案
您可以使用辅助列 tmp
填充<$ DataFrames
和合并
。最后,您可以 drop
它:
You can use helper columns tmp
filled 1
in both DataFrames
and merge
on this column. Last you can drop
it:
DF1['tmp'] = 1
DF2['tmp'] = 1
print DF1
id quantity tmp
0 1 20 1
1 2 23 1
print DF2
name part tmp
0 'A' 3 1
1 'B' 4 1
2 'C' 5 1
DF = pd.merge(DF1, DF2, on=['tmp'])
print DF
id quantity tmp name part
0 1 20 1 'A' 3
1 1 20 1 'B' 4
2 1 20 1 'C' 5
3 2 23 1 'A' 3
4 2 23 1 'B' 4
5 2 23 1 'C' 5
print DF.drop('tmp', axis=1)
id quantity name part
0 1 20 'A' 3
1 1 20 'B' 4
2 1 20 'C' 5
3 2 23 'A' 3
4 2 23 'B' 4
5 2 23 'C' 5
这篇关于Python pandas:合并两个没有键的表(将2个数据帧与广播的所有元素相乘; NxN数据帧)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文