这为我工作:
In [7]:df1[~df1.Star_ID.isin(df2.Star_ID)]Out[7]: Star_ID Loc_ID pmRA pmDE Field Jmag Hmag2 2M00000222+5625359 4264 0 0 N7789 11.982 11.4333 2M00000818+5634264 4264 0 0 N7789 12.501 11.892[2 rows x 7 columns]
因此,我们在这里做的是创建一个布尔掩码,我们要求
Star_ID两个数据帧中的值都在哪里,但是通过使用
~we
NOT实际上使它无效的条件。您链接到的链接几乎是同一件事,但我认为您可能不了解语法?
编辑
为了同时获得仅在df1中的值和仅在df2中的值,您可以执行此操作
unique_vals = df1[~df1.Star_ID.isin(df2.Star_ID)].append(df2[~df2.Star_ID.isin(df1.Star_ID)], ignore_index=True)
进一步编辑
因此,问题在于csv包含前导空格,这导致所有值在两个数据集中都是唯一的,要更正此错误,您需要执行以下操作:
df1.Apogee_ID = df1.Apogee_ID.str.lstrip()



