Python Pandas合并两个数据帧并将一行从一个数据帧映射到另一个数据帧的所有行

时间:2015-06-11 14:55:55

标签: python pandas merge dataframe

所以基本上我正在努力实现这样的目标:

DataFrameA:

    A    pr
0  true  0.3
1  false 0.7

DataFrameB:

    B    pr
0  true  0.9
1  false 0.1

结果:

    A     pr_a   B     pr_b
0  true   0.3    true  0.9
1  true   0.3    false 0.1
2  false  0.7    true  0.9
3  false  0.7    false 0.1

有没有方便的方法来实现这一目标? 一般情况怎么样? 例如A,B与C合并为我提供了A,B,C的所有映射。

提前谢谢!

1 个答案:

答案 0 :(得分:2)

找到了解决方案。

添加另一个名为key的列,并用1s填充该列,如下所示:

DataFrameA:

   A      pr   key
0  true   0.3  1
1  false  0.7  1

DataFrameB:

   B      pr   key
0  true   0.9  1
1  false  0.1  1

然后将A和B合并在一起='key',如下所示:

 newDataFrame = pandas.merge(DataFrameA, DataFrameB, on='key')

结果将是:

   A      pr_a  key  B     pr_b
0  true   0.3   1    true  0.9
1  true   0.3   1    false 0.1
2  false  0.7   1    true  0.9
3  false  0.7   1    false 0.1

最后,只需删除“密钥”列。