从数据帧中删除与其他数据帧不匹配的项目?



我正在尝试比较两个数据帧,一个是从 excel 工作表 ( tempSheet ) 创建的,另一个是从 sql 表创建的 ( testdf )。我想最终使用其中一个数据帧来删除与另一个数据帧匹配的任何内容。然后使用 to_excel 将其放回它来自的 excel 表中。

我想tempSheet = tempSheet[tempSheet != testdf]会起作用,但我收到一个错误说

ValueError: Can only compared identically-labeled DataFrame objects

我确保两者的列名相同。 数据只有两列,都是数字。

所以我想我有两个问题。有没有办法使上述陈述起作用?或者有更好的方法可以做到这一点吗?

我的数据帧如下所示:

   Qty    Price     
0  1      1.30
1  6      2.70
2  8      0.20
3  10     3.90
4  9      11.25
5  15     1.89
6  26     2.67
7  200    7.65
...
   Qty    Price
0  1      1.30
1  10     3.90
2  15     1.89
3  16     0.98
4  2      10.52
5  66     9.87
6  9      13.42
7  43     27.65
...

我想将第一个减少到只有比赛,所以

    Qty    Price
0   1      1.30
1   10     3.90
2   15     1.89

你可以(内部)合并:

In [11]: pd.merge(df, df1)
Out[11]:
   Qty  Price
0    1   1.30
1   10   3.90
2   15   1.89

最新更新