【发布时间】:2017-09-17 13:08:50
【问题描述】:
我有两个数据框 DF1 和 DF2。我的目标是使用DF1 列查找DF2
钥匙;并将返回结果作为结果保存在DF3 中。有人可以帮我得到
DF3?
例如
DF1 DF2
map test1 test2 No. outcome
A NaN NaN 1 AA
B NaN 5 2 BB
C 1 6 3 CC
D 2 7 4 DD
E 3 NaN 5 EE
F 4 NaN 6 FF
G 5 8 7 GG
H 6 9 8 HH
I 7 10 9 II
10 JJ
11 KK
12 LL
13 MM
DF3
map test1 test2 outcome1 outcome2
A NaN NaN NaN NaN
B NaN 5 NaN EE
C 1 6 AA FF
D 2 7 BB GG
E 3 NaN CC NaN
F 4 NaN DD NaN
G 5 8 EE HH
H 6 9 FF II
I 7 10 GG JJ
我目前正在使用两个连接函数,但这不是我需要的。它在DF1 中删除NaNs,并且只返回test1 和test2 的重叠部分。
df3 = df1.merge(df2, how='inner', left_on='test1', right_on='No.')
df3 = df3.merge(df2, how='inner', left_on='test2', right_on='No.')
目前我的代码会返回这个:
DF3
映射测试1 测试2 结果1 结果2
C 1 6 AA FF
D 2 7 BB GG
G 5 8 EE HH
H 6 9 FF II
I 7 10 GG JJ
【问题讨论】:
-
什么是“数据集”(因为它不是任何内置 Python 数据类型的名称)?
-
抱歉给您带来了困惑。我的意思是熊猫数据框
-
使用两条语句来实现这个有什么问题?
-
数据框也不是内置的。我已经相应地更新了您问题的标签。
标签: python pandas dataframe merge