【发布时间】:2021-12-14 01:10:44
【问题描述】:
我正在尝试比较两个数据框:
df1:
entry mass Precursor mass_pos
0 KGTLPK 128 642.780 770.780
1 KGTLPK 48 642.780 690.780
2 KGTLPK 112 642.780 754.780
3 KGTLPK 32 642.780 674.780
4 KGTLPK 156 642.780 798.780
df2:
Mass
0 586.672
1 798.780
2 690.780
3 400.000
我的目标是找到 df2 'mass' 与 df1 'mass_pos' 的任何匹配项。
我真的很喜欢这个:
df1['masses match'] = np.where(df2['Mass'] == df1['mass_pos'], 'True', 'False')
但这会引发值错误:
ValueError: Can only compare identically-labeled Series objects
我认为这是因为这些数据帧的行数不同。有没有办法克服这个问题?
【问题讨论】:
-
可能是
df1['mass_pos'].isin(df2['Mass'])。也就是说,不建议在 float 上完全匹配。