使用 Pandas 从另一个数据帧中删除一个数据帧

2023-11-26

我有两个不同大小的数据框(df1 nad df2)。我想从中删除df1存储在其中的所有行df2.

所以如果我有df2等于:

     A  B
0  wer  6
1  tyu  7

And df1等于:

     A  B  C
0  qwe  5  a
1  wer  6  s
2  wer  6  d
3  rty  9  f
4  tyu  7  g
5  tyu  7  h
6  tyu  7  j
7  iop  1  k

最终结果应该是这样的:

     A  B  C
0  qwe  5  a
1  rty  9  f
2  iop  1  k

我能够通过使用 for 循环来实现我的目标,但我想知道是否有更好、更优雅、更有效的方法来执行此类操作。

这是我编写的代码,以防您需要: 将 pandas 导入为 pd

df1 = pd.DataFrame({'A' : ['qwe', 'wer', 'wer', 'rty', 'tyu', 'tyu', 'tyu', 'iop'],
                    'B' : [    5,     6,     6,     9,     7,     7,     7,     1],
                    'C' : ['a'  ,   's',   'd',   'f',   'g',   'h',   'j',   'k']})

df2 = pd.DataFrame({'A' : ['wer', 'tyu'],
                    'B' : [    6,     7]})

for i, row in df2.iterrows():
    df1 = df1[(df1['A']!=row['A']) & (df1['B']!=row['B'])].reset_index(drop=True)

Use merge带有外连接 带有过滤器query,最后删除辅助列drop:

df = pd.merge(df1, df2, on=['A','B'], how='outer', indicator=True)
       .query("_merge != 'both'")
       .drop('_merge', axis=1)
       .reset_index(drop=True)
print (df)
     A  B  C
0  qwe  5  a
1  rty  9  f
2  iop  1  k
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Pandas 从另一个数据帧中删除一个数据帧 的相关文章

随机推荐

  • jQuery keypress() 事件未触发?

    我正在尝试使用 jQuery 在左右箭头键按下时触发事件 使用以下代码 我可以在任何字母数字键上触发事件 但光标键 上 下 左 右 不会触发任何事件 我主要为 IE 用户开发该网站 因为它是一个业务应用程序 我在这里做错了什么吗 docum
  • 模拟 touchstart 和 touchend 事件?

    我正在开发一个主要适用于 ipad 的 jquery 组件 那么是否有办法在桌面上模拟 touchstart 和 touchend 事件 而不是让设备本身检查事件 您可以在 jQuery 中编写自己的自定义事件 var event Even
  • 我可以在信号处理程序中做什么?

    struct sigaction newSignalAction memset newSignalAction 0 sizeof newSignalAction newSignalAction sa handler SignalHandle
  • 为什么运行“gitbranch-r”时显示“origin/HEAD”?

    当你跑步时git branch r为什么它列出了大火origin HEAD 例如 GitHub 上有一个远程存储库 有两个分支 master 和 Awesome feature 如果我做git clone抓住它 然后进入我的新目录并列出分支
  • nasm 汇编语言中的 $ 是什么? [复制]

    这个问题在这里已经有答案了 这是我的汇编级代码 section text global start start mov eax 4 mov ebx 1 mov ecx mesg mov edx size int 0x80 exit mov
  • 如何用Java编写无序对的集合

    我需要一个 Set HashSet 这样如果我插入一对 a b and if b a 已经在集合中 插入将被忽略 如何在 Java 中做到这一点 非常感谢 嗯 这取决于hashCode and equals 你的方法Pair班级 他们需要忽
  • 如何告诉 Buildout 从 URL 安装 Egg(不带 pypi)

    我有一些可以通过 URL 访问的彩蛋 比如说http myhosting com somepkg egg 现在我没有在 pypi 上列出这个 somepkg 我如何告诉 buildout 为我获取并安装它 我尝试了一些食谱 但到目前为止还没
  • 在 C# 中传递泛型作为泛型类型参数

    我在 C 中对泛型做了一个小实验 我遇到了一个问题 我想将泛型类型作为类型参数传递 并带有约束来实现我不知道其类型的泛型接口 这是我的例子 using System using System Collections Generic usin
  • 使用 jq 或 sed 替换 JSON 中的属性或键

    有一个像这样的大json envConfig environmentName versions name version1 value Dev name version2 host qa userRoles name Roles
  • 如何用socket地址获取自己的IP地址?

    我想获取启动程序的计算机的 IP 地址 以便能够将其发送到客户端 但我总是得到 0 0 0 1 而不是真实的 IP 地址 例如 127 0 0 1 我目前能够获取端口 但无法获取 IP 地址 我怎么才能得到它 最好的解决方案是能够通过soc
  • 如何通过库名称找到库的文件名?

    如何通过库名称找到库的文件名 换句话说 当我使用 lc 时 我知道它是 lib libc so 6 或类似的东西 我希望能够键入一些命令 其中 lc 是输入 lib 是 libc so 6 是输出 为了进一步扩展这个想法 我想指定我自己的搜
  • 用于扫描可用 Wi-Fi 网络的 iOS API 是什么

    这就是问题所在 但这是一个长版本 我正在开发一个需要模仿 Belkin WeMo 的连接工作流程的项目 WeMo 是一个可以通过 iOS 应用程序控制的物理开关 设置的工作原理如下 WeMo 充当 Wi Fi 路由器 它会广播 SSID 而
  • Spring 4 MVC - Rest服务 - 在bean中使用默认值

    我在用Spring 4 1 4并实现一个简单的REST服务 我确实有一个POST方法得到一个Person对象作为请求 ResponseStatus value HttpStatus CREATED RequestMapping value
  • Google 容器引擎中的 Kubernetes HTTPS 入口

    我想公开在 Google Container Engine 中运行的 HTTP 服务仅 HTTPS负载平衡器 如何在入口对象中定义我想要的HTTPS仅负载均衡器而不是默认 HTTP 或者有什么办法可以永久删除HTTP来自创建的负载均衡器的协
  • Xcode 4 中的“运行 > 在 Objective-C 异常时停止”?

    也许有人知道 Xcode 4 中的 运行 gt 在 Objective C 异常时停止 菜单在哪里 我有时在 Xcode 3 中使用过它 但它在新的 IDE 中消失了 在xcode 4的左侧栏中 点击断点选项卡 第 6 个 选项卡结束 点击
  • 如何让 Maven 2 构建 2 个独立的 WAR 文件

    当做一个mvn install我想在我的目标目录中得到 2 个 WAR 文件 其中一个将包含生产 web xml另一个将包含test uat web xml 我试过这个
  • 我如何运行 Conda?

    我安装了 Anaconda 并且可以运行 Python 所以我假设我安装正确 按照此介绍性文档 我正在尝试安装 Python v3 3 因此我将以下行复制并粘贴到我的控制台中 conda create n py33 python 3 3 a
  • 将VC++的__try/__ except EXCEPTION_STACK_OVERFLOW移植到MinGW

    我正在尝试使用 VC 的 try except 语句将一些代码移植到 MinGW bool success true try except EXCEPTION STACK OVERFLOW GetExceptionCode EXCEPTIO
  • 通过 IdeaVim 在 IntelliJ 中使用 Vim 插件

    有没有办法通过 IdeaVim 在 IntelliJ 中使用 Vim 插件 在这种情况下 我正在寻找一种使用 easymotion Vim 插件的方法 您可以使用acejump插件或emacsIDEAs 不要被它的名字吓到 它只是介绍了 a
  • 使用 Pandas 从另一个数据帧中删除一个数据帧

    我有两个不同大小的数据框 df1 nad df2 我想从中删除df1存储在其中的所有行df2 所以如果我有df2等于 A B 0 wer 6 1 tyu 7 And df1等于 A B C 0 qwe 5 a 1 wer 6 s 2 wer