【发布时间】:2019-05-22 18:41:46
【问题描述】:
我有两个 Pandas 数据框 (Python3)。如下所示。
df1
name, score
Tom, 130
Jane, 98
Anny, 81
Chuck, 92
df2
name
Amy
Chuck
Dave
Danny
Emma
Jack
Tom
Taro
我想要做的是查看 df1,如果在 df2 中找到任何名称,则从 df1 中删除名称、得分行。
我搜索了执行此操作的最佳方法,但没有一个对我有用。 (或者,可能我没有以正确的方式使用该函数。)例如,
output= (df1!=df2)
返回,
ValueError: Can only compare identically-labeled DataFrame objects
所以,它没有考虑分数列。
我期望得到的,
name, score
Jane, 98
Anny, 81
简和安妮不在 df2 中。
我该怎么做?
【问题讨论】:
-
df1[~df1.name.isin(df2.name)] -
谢谢,安迪。但是,我得到一个错误,'AttributeError: 'DataFrame' object has no attribute 'name'
-
@Andy 打败了我。如果你得到一个 AttributeError,你的列名不是你在问题中描述的。
-
@K.K.:我转而回答以提供修复。检查我的答案
标签: python-3.x pandas data-science