我会根据A列中的字符串匹配在DF 1和DF 2之间的B列中的差异。数据帧有数百行,可能没有按顺序排列。他们看起来像这样:
df1
A B
0 a,b 2.0
1 d,c 1.4
2 a,c 1.8
3 c,d 5.4
4 m,m 2.0
df2
A B
0 c,d 2.1
1 a,b 2.2
2 k,k 3.0
3 a,d 2.0
4 m,m 1.2
并且所需的输出将基于DF 1并且如果没有匹配则返回NaN。它看起来像是:
DF Result
__| A | B |
0 |'a,b' | -0.2 |
1 |'d,c' | NaN |
2 |'a,c' | NaN |
3 |'c,d' | 3.3 |
4 |'m,m' | 0.8 |
非常感谢任何帮助。谢谢!
答案 0 :(得分:1)
执行索引对齐减法。
(df1.set_index('A').B - df2.set_index('A').reindex(df1.A).B).reset_index()
A B
0 a,b -0.2
1 d,c NaN
2 a,c NaN
3 c,d 3.3
4 m,m 0.8