【发布时间】:2017-02-23 18:48:46
【问题描述】:
数据框A 看起来像
1st name
0 01 AA
1 02 AB
2 03 AC
3 04 AD
4 05 AE
B 看起来像
pred 1st 2nd
0 0.25 03 01
1 0.00 01 03
2 0.73 02 05
3 0.93 02 01
4 0.44 01 02
我希望结果看起来像
pred 1st 2nd 1stName 2ndName
0 0.25 03 01 AC AA
1 0.00 01 03 AA AC
2 0.73 02 05 AB AE
3 0.93 02 01 AB AA
4 0.44 01 02 AA AB
我试过了
res = pd.merge(A,B, on='1st', how='outer')
但我得到一个零行的数据框
如何以这种方式合并这些数据框?
编辑: 我得到的结果数据框看起来像
pred 1st 2nd name
0 0.25 03 01 NaN
1 0.00 01 03 NaN
2 0.73 02 05 NaN
3 0.93 02 01 NaN
4 0.44 01 02 NaN
【问题讨论】:
-
第二个名字是从哪里来的?而且我不知道您目前将如何获得零行...它看起来肯定不像您的预期输出。
-
第二个名字来自
A。所以对于B中的第一行,2nd的值为 03。在数据帧A中,03具有nameAC。这就是为什么在结果中,2nd有2ndName的AC -
dataframe
A比我发布的要长。我发布的只是A的前几行,因为我不想发布整个 1000 多行。至于零行,请参阅我的编辑。我得到了行,但NaN的值为name -
如果您可以构建一个最小的、独立的示例,那将非常有帮助。
-
我修改了例子,希望对你有帮助
标签: python pandas join dataframe merge