我有两个pandas数据帧,我想将每个第二个数据帧行与每个第一个数据帧行组合起来,如下所示:
第一:
val1 val2
1 2
0 0
2 1
第二个:
l1 l2
a a
b c
结果(预期结果大小=len(first)*len(second)):
val1 val2 l1 l2
1 2 a a
1 2 b c
0 0 a a
0 0 b c
2 1 a a
2 1 b b
它们没有相同的索引。
当做,
塞科
最佳答案
创建一个代理键来在它们之间进行笛卡尔连接…
import pandas as pd
df1 = pd.DataFrame({'A': [1, 0, 2],
'B': [2, 0, 1],
'tmp': 1})
df2 = pd.DataFrame({'l1': ['a', 'b'],
'l2': ['a', 'c'],
'tmp': 1})
print pd.merge(df1, df2, on='tmp', how='outer')
结果:
A B tmp l1 l2
0 1 2 1 a a
1 1 2 1 b c
2 0 0 1 a a
3 0 0 1 b c
4 2 1 1 a a
5 2 1 1 b c
关于python - Pandas 数据框架笛卡尔加入,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32440716/