如果在另一个数据框中找到行,则将其删除

大刮擦

有一个数据帧称为all_combinations

Name      Store_Code Town   PostC   Revenue Street
 Starbucks   6890    Derby   post1   1       Street_1
 Starbucks   6891    Derby           0.5     NaN
 Starbucks   NaN     Derby   post6   NaN     Street_2
 Starbucks   6892    Derby   post2   0.9     Street_3
 Starbucks   6893    Derby   post3   2       Street_4
 McDonalds   6890    Derby   post1   1       Street_1
 McDonalds   8890    Derby   post4   2.8     Street_5
 McDonalds   8890    London  post5   1.7     Street_6
 McDonalds   NaN     London  post7   NaN     Street_7
 McDonalds   8888    London          2       Street_7

还有另一个称为有效的数据框

Name      Store_Code Town   PostC   Revenue Street
 Starbucks   6890    Derby   post1   1       Street_1
 Starbucks   6891    Derby           0.5     NaN
 Starbucks   6892    Derby   post2   0.9     Street_3
 Starbucks   6893    Derby   post3   2       Street_4
 McDonalds   6890    Derby   post1   1       Street_1
 McDonalds   8890    Derby   post4   2.8     Street_5
 McDonalds   8890    London  post5   1.7     Street_6

有没有一种优雅的方法可以找到这两个数据框之间的行差(在这种情况下无效),即

Name      Store_Code Town   PostC   Revenue Street
 Starbucks   NaN     Derby   post6   NaN     Street_2
 McDonalds   NaN     London  post7   NaN     Street_7
 McDonalds   8888    London          2       Street_7
乔里斯

不太优雅,但是我认为这应该可行:concatall_combinationsvalid,然后删除所有重复项:

In [11]: all_valid = pd.concat([all_combinations, valid])

In [12]: all_valid[~(all_valid.duplicated() | all_valid.duplicated(take_last=True))]
Out[12]: 
        Name  Store    Town  PostC  Revenue    Street
2  Starbucks    NaN   Derby  post6      NaN  Street_2
8  McDonalds    NaN  London  post7      NaN  Street_7
9  McDonalds   8888  London    NaN        2  Street_7

两次.duplicated()是删除重复项的第一次出现和第二次出现。

使用(更优雅)的问题all_combinations[~all_combination.isin(valid).all()]在于,这还会检查索引标签的相等性(我认为这是不希望的)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如果在另一个数据框列pandas中找到一列中的值,则返回值

来自分类Dev

如果在另一个对象数组中找到属性,则映射对象

来自分类Dev

如果在另一个数据帧中该组中有一行,如何删除该数据集中的组?

来自分类Dev

Python Pandas:在另一个数据框中找到一个值并将其替换

来自分类Dev

SAS:如果观测值与另一个数据集中的观测值匹配,则将其从数据集中删除

来自分类Dev

如果在另一个工作簿中找到或未找到单元,则创建各种范围

来自分类Dev

如果在另一个表中引用了行,则防止软删除

来自分类Dev

如果在Apache Spark Java中为null,则将行的值替换为另一个

来自分类Dev

如果在Apache Spark Java中为null,则将行的值替换为另一个

来自分类Dev

如果在另一个列表中找到值,则不会将Python列表附加到后面

来自分类Dev

如果在列表数组中找到匹配项,则Excel返回另一个单元格值

来自分类Dev

如果在另一行中找到ID,则MySQL删除行

来自分类Dev

如果日期较新,则将日期从一个数据框替换为另一个

来自分类Dev

如果在熊猫中没有重复,则将行值从一个df追加到另一个

来自分类Dev

如果另一个数据框中缺少值,如何在一个数据框中删除一行?

来自分类Dev

如果在另一个数组中满足条件,如何处理一个数组中的数据?

来自分类Dev

从另一个数据框中的一个数据框中找到一个值并打印该行(Python)

来自分类Dev

根据另一个数据框的值删除一个数据框的行和列

来自分类Dev

如果在安装另一个之前*删除DE,会发生什么?

来自分类Dev

如果在另一个内存表中,则从内存表中删除

来自分类Dev

如何删除不在另一个数据框中的数据框行?

来自分类Dev

使用grep查找文本,如果在文件中找到,则在该文件中回显另一个字符串

来自分类Dev

如果在另一个字符串中找到它们,则用空白替换字符串的字母

来自分类Dev

如果在 StringStream 中输入一个整数,则将其加倍并打印

来自分类Dev

如果在 VBA 的另一个下拉框中选择,则从下拉框中删除项目

来自分类Dev

如果前两列都匹配,则将数据框的一列中的值添加到另一个数据框的新列中

来自分类Dev

用正则表达式sed,如果在34位置找到一个数字,则删除行

来自分类Dev

根据另一个数据框中的列删除行

来自分类Dev

熊猫:删除列与另一个数据框中显示的行

Related 相关文章

  1. 1

    如果在另一个数据框列pandas中找到一列中的值,则返回值

  2. 2

    如果在另一个对象数组中找到属性,则映射对象

  3. 3

    如果在另一个数据帧中该组中有一行,如何删除该数据集中的组?

  4. 4

    Python Pandas:在另一个数据框中找到一个值并将其替换

  5. 5

    SAS:如果观测值与另一个数据集中的观测值匹配,则将其从数据集中删除

  6. 6

    如果在另一个工作簿中找到或未找到单元,则创建各种范围

  7. 7

    如果在另一个表中引用了行,则防止软删除

  8. 8

    如果在Apache Spark Java中为null,则将行的值替换为另一个

  9. 9

    如果在Apache Spark Java中为null,则将行的值替换为另一个

  10. 10

    如果在另一个列表中找到值,则不会将Python列表附加到后面

  11. 11

    如果在列表数组中找到匹配项,则Excel返回另一个单元格值

  12. 12

    如果在另一行中找到ID,则MySQL删除行

  13. 13

    如果日期较新,则将日期从一个数据框替换为另一个

  14. 14

    如果在熊猫中没有重复,则将行值从一个df追加到另一个

  15. 15

    如果另一个数据框中缺少值,如何在一个数据框中删除一行?

  16. 16

    如果在另一个数组中满足条件,如何处理一个数组中的数据?

  17. 17

    从另一个数据框中的一个数据框中找到一个值并打印该行(Python)

  18. 18

    根据另一个数据框的值删除一个数据框的行和列

  19. 19

    如果在安装另一个之前*删除DE,会发生什么?

  20. 20

    如果在另一个内存表中,则从内存表中删除

  21. 21

    如何删除不在另一个数据框中的数据框行?

  22. 22

    使用grep查找文本,如果在文件中找到,则在该文件中回显另一个字符串

  23. 23

    如果在另一个字符串中找到它们,则用空白替换字符串的字母

  24. 24

    如果在 StringStream 中输入一个整数,则将其加倍并打印

  25. 25

    如果在 VBA 的另一个下拉框中选择,则从下拉框中删除项目

  26. 26

    如果前两列都匹配,则将数据框的一列中的值添加到另一个数据框的新列中

  27. 27

    用正则表达式sed,如果在34位置找到一个数字,则删除行

  28. 28

    根据另一个数据框中的列删除行

  29. 29

    熊猫:删除列与另一个数据框中显示的行

热门标签

归档