如何删除数据框中同时出现在两列中相同的行?

2023-12-11

我有一个数据框,DF1

   Id1   Id2  
0  286   409 
1  286   257  
2  409   286    
3  257   183   

在这个 DF 中,对我来说行286,409 and 409,286是一样的。我只想保留其中一行。我所做的所有这一切都是使用构建一个网络图Networkxpython 库。

我尝试通过创建另一个具有互换列的 df 来实现它,例如 DF2

   Id2   Id1
0  409   286
1  257   286
2  286   409
3  183   257

然后我使用比较这两个 DFisin函数是这样的

DF1[DF1[['Id1', 'Id2']].isin(DF2[['Id2', 'Id1']])]但它按原样打印 DF1。

预期输出 DF:

   Id1   Id2  
0  286   409 
1  286   257     
3  257   183  

任何帮助将不胜感激,谢谢。


我相信您需要对两列进行排序np.sort并过滤DataFrame.duplicated使用反掩码:

df1 = pd.DataFrame(np.sort(DF1[['Id1', 'Id2']].to_numpy(), axis=1), index=DF1.index)

df = DF1[~df1.duplicated()]
print (df)
   Id1  Id2
0  286  409
1  286  257
3  257  183

Detail:如果使用numpy.sort with axis=1它按行排序,所以第一和第三'row'是相同的:

print (np.sort(DF1[['Id1', 'Id2']].to_numpy(), axis=1))
[[286 409]
 [257 286]
 [286 409]
 [183 257]]

然后使用DataFrame.duplicated函数(使用 DataFrame,因此使用 DataFrame 构造函数):

df1 = pd.DataFrame(np.sort(DF1[['Id1', 'Id2']].to_numpy(), axis=1), index=DF1.index)
print (df1)
     0    1
0  286  409
1  257  286
2  286  409
3  183  257

第三个值是重复的:

print (df1.duplicated())
0    False
1    False
2     True
3    False
dtype: bool

最后是删除重复项所必需的反转掩码,输出被过滤boolean indexing:

print (DF1[~df1.duplicated()])
   Id1  Id2
0  286  409
1  286  257
3  257  183
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何删除数据框中同时出现在两列中相同的行? 的相关文章

  • 如何在 __init__ 中使用await设置类属性

    我如何定义一个类await在构造函数或类体中 例如我想要的 import asyncio some code class Foo object async def init self settings self settings setti
  • 在 Python 中将列表元素作为单独的项目返回

    Stackoverflow 的朋友们大家好 我有一个计算列表的函数 我想单独返回列表的每个元素 如下所示 接收此返回的函数旨在处理未定义数量的参数 def foo my list 1 2 3 4 return 1 2 3 4 列表中的元素数
  • 多输出堆叠回归器

    一次性问题 我正在尝试构建一个多输入堆叠回归器 添加到 sklearn 0 22 据我了解 我必须结合StackingRegressor and MultiOutputRegressor 经过多次尝试 这似乎是正确的顺序 import nu
  • 在 Django Admin 中调整字段大小

    在管理上添加或编辑条目时 Django 倾向于填充水平空间 但在某些情况下 当编辑 8 个字符宽的日期字段或 6 或 8 个字符的 CharField 时 这确实是一种空间浪费 字符宽 然后编辑框最多可容纳 15 或 20 个字符 我如何告
  • 为什么 web2py 在启动时崩溃?

    我正在尝试让 web2py 在 Ubuntu 机器上运行 所有文档似乎都表明要在 nix 系统上运行它 您需要下载源代码并执行以下操作 蟒蛇 web2py py 我抓住了source http www web2py com examples
  • Pycharm 在 os.path 连接上出现“未解析的引用”

    将pycharm升级到2018 1 并将python升级到3 6 5后 pycharm报告 未解析的引用 join 最新版本的 pycharm 不会显示以下行的任何警告 from os path import join expanduser
  • Tensorboard SyntaxError:语法无效

    当我尝试制作张量板时 出现语法错误 尽管开源代码我还是无法理解 我尝试搜索张量板的代码 但不清楚 即使我不擅长Python 我这样写路径C Users jh902 Documents logs因为我正在使用 Windows 10 但我不确定
  • 从 Powershell 脚本安装 Python

    当以管理员身份从 PowerShell 命令行运行以下命令时 可以在 Windows 11 上成功安装 Python c temp python 3 11 4 amd64 exe quiet InstallAllUsers 0 Instal
  • Java 和 Python 可以在同一个应用程序中共存吗?

    我需要一个 Java 实例直接从 Python 实例数据存储中获取数据 我不知道这是否可能 数据存储是否透明 唯一 或者每个实例 如果它们确实可以共存 都有其单独的数据存储 总结一下 Java 应用程序如何从 Python 应用程序的数据存
  • 尽管我已在 python ctypes 中设置了信号处理程序,但并未调用它

    我尝试过使用 sigaction 和 ctypes 设置信号处理程序 我知道它可以与python中的信号模块一起使用 但我想尝试学习 当我向该进程发送 SIGTERM 时 但它没有调用我设置的处理程序 只打印 终止 为什么它不调用处理程序
  • pandas - 包含时间序列数据的堆积条形图

    我正在尝试使用时间序列数据在 pandas 中创建堆积条形图 DATE TYPE VOL 0 2010 01 01 Heavy 932 612903 1 2010 01 01 Light 370 612903 2 2010 01 01 Me
  • 在 Google App Engine 中,如何避免创建具有相同属性的重复实体?

    我正在尝试添加一个事务 以避免创建具有相同属性的两个实体 在我的应用程序中 每次看到新的 Google 用户登录时 我都会创建一个新的播放器 当新的 Google 用户在几毫秒内进行多个 json 调用时 我当前的实现偶尔会创建重复的播放器
  • PySpark groupByKey 返回 pyspark.resultiterable.ResultIterable

    我试图找出为什么我的 groupByKey 返回以下内容 0
  • 如何使用 AWS Lambda Python 读取 AWS S3 存储的 Word 文档(.doc 和 .docx)文件内容?

    我的场景是 我尝试使用 python 实现从 Aws Lambda 读取 AWS 存储的 S3 word 文档 doc 和 docx 文件内容 下面的代码是我使用的 我的问题是我可以获取文件名 但无法读取内容 def lambda hand
  • 如何以正确的方式为独立的Python应用程序制作setup.py?

    我读过几个类似的主题 但还没有成功 我觉得我错过或误解了一些基本的事情 这就是我失败的原因 我有一个用 python 编写的 应用程序 我想在标准 setup py 的帮助下进行部署 由于功能复杂 它由不同的 python 模块组成 但单独
  • 制作一份 Python 文档的 PDF 文件

    Python 官方网站提供 PDF 文档下载 但它们是按章节分隔的 我下载了源代码并构建了 PDF 文档 这些文档也是单独的 PDF 我怎么能够从源代码中的 Makefile 构建一个 PDF 文件 我认为这样阅读起来会更方便 如果连接单独
  • 如何使用 Boto3 启动具有 IAM 角色的 EC2 实例?

    我无法弄清楚如何使用指定的 IAM 角色在 Boto3 中启动 EC2 实例 以下是迄今为止我如何成功创建实例的一些示例代码 import boto3 ec2 boto3 resource ec2 region name us west 2
  • 等待子进程使用 os.system

    我用了很多os system在 for 循环内调用创建后台进程 如何等待所有后台进程结束 os wait告诉我没有子进程 ps 我使用的是Solaris 这是我的代码 usr bin python import subprocess imp
  • pandas.read_csv 将列名移动一倍

    我正在使用位于的 ALL zip 文件here http www fec gov disclosurep PDownload do 我的目标是用它创建一个 pandas DataFrame 但是 如果我跑 data pd read csv
  • 如何在 Flask 中的视图函数/会话之间传递复杂对象

    我正在编写一个 Web 应用程序 当 且仅当 用户登录时 该应用程序从第三方服务器接收大量数据 这些数据被解析为自定义对象并存储在list 现在 用户在应用程序中使用这些数据 调用不同的视图 例如发送不同的请求 我不确定什么是最好的模式在视

随机推荐

  • 让 Facebook 好友参加活动?

    我如何才能看到我的哪些朋友参加了 Facebook 活动 我可以使用 Facebook SDK 获取所有与会者的列表 其中 GraphPath eventId attending 使用 Graph API 是否可以实现我想要的功能 我阅读了
  • 导航栏与状态栏重叠

    我面临一个非常奇怪的问题iOS 6 0 iOS 6 0 1 每当我从任何视图控制器呈现模态视图然后关闭该模态视图时 父视图控制器的导航栏 从我呈现模态视图的位置 就会与状态栏重叠 这运行良好iOS 6 0 iOS 6 1模拟器 但在设备上它
  • 在 OpenGL ES 中绘制简单的曲线、直线和圆比在 Quartz 2D 中复杂多少?

    OpenGL ES 真的那么快吗 为什么 与在 Quartz 2D 中绘制这些简单的东西相比 在 OpenGL ES 中绘制如此简单的东西真的那么复杂吗 例如 我有一个实现了 drawRect 的 UIView 子类 我在其中绘制了一些直线
  • 是否可以使用扩展超类方法参数的参数来重写超类方法?

    假设我有一堂这样的课 abstract class Something 它有一个层次结构 其中有类扩展它 class FirstSomething extends Something class SecondSomething extend
  • 在 Headless Chrome Selenium 上检测到

    我试图在使用最新的 UserAgent 进行无头运行时抓取 Amazon 但我的速率受到限制 当我退出无头线路时 我不会被检测到或受到速率限制 下面是我的代码 options Options options add experimental
  • 在 Woocommerce 单一产品页面和购物车上有条件地设置特定产品价格

    在 Woocommerce 中 我想更改单个产品页面和相关购物车项目上特定产品 在本例中 ID 为 87 的价格 产品价格需要增加 10 美元 但仅限于单个产品页面且仅在外部 以便内部价格或 Woocommerce 中设置的价格不会改变 此
  • 每个请求发送两个 servlet 响应

    我写 因为我无法解决以下问题 我有一个处理一些信息的 servlet 作为响应 我添加了文本和二进制内容 如何从同一个请求开始获得两个响应 然后是两个 html 页面 有可能吗 第一个响应应该继续做他现在所做的事情 而第二个响应将出现一个弹
  • Django ImageField“上传有效的图像。您上传的文件要么不是图像,要么是损坏的图像。”

    我安装了 PIL 但是每当我尝试通过模型的 Django 管理将 png 文件上传到图像字段时 都会收到此错误 上传有效的图像 您上传的文件要么不是图像 要么是损坏的图像 其他图像类型工作正常 我尝试过几个不同的 PNG 文件 我在安装 p
  • PHPExcel 返回损坏的二进制文件

    I want to write a reference xls file and retrieve the result When I tested with a single file it works but when the refe
  • IPC的实现方式

    在 Windows 上实现 IPC 的首选方法是什么 我知道几个类似的 命名管道 共享内存 信号量 也许是COM 虽然我不知道如何 我想知道什么被认为是最强大 最快速 最不容易出错并且易于维护 理解的 几年前 我们针对客户端 服务器情况研究
  • 使用sql语句insert into将blob文件写入数据库

    我目前正在 Advantage Database Server 中寻找通过 sql 将字节流 所谓的 blob 文件 放入表中的可能性 当我建立一个完整的数据库时 我会这样做 TBlobField BaseTable FieldByName
  • 如何获取 HTML Canvas 中旧生成元素的引用?

    看一下这个例子 var c document getElementById myCanvas var ctx c getContext 2d First rectangle created ctx fillRect 20 20 150 10
  • python panda:返回公共行的索引

    抱歉 如果这是一个相当新手的问题 我试图找出两个数据框之间哪些行是共同的 返回值应该是行索引df2常见于df1 我的笨重例子 df1 pd DataFrame col1 cx cx cx2 col2 1 4 12 df1 col2 df1
  • java中具有多个客户端的Socket服务器

    我必须创建一个套接字服务器来监听多个客户端 假设有6个客户端同时连接到服务器 并且每个客户端同时向服务器发送一些命令 如果这些客户端每 1 秒向服务器发送一次消息 我如何处理来自服务器端 6 个客户端的这些消息 将其存储在表中以及对每个客户
  • 如何在 Angular 的反应表单中设置表单控件的值

    我是角度新手 实际上 我正在尝试从服务订阅数据 并将该数据传递给我的表单控件 例如 它就像编辑表单 import Component OnInit from angular core import FormBuilder FormGroup
  • 在 ios 应用程序中获取某人的 Facebook 公开资料

    我正在开发一个需要 Facebook 登录的 ios 应用程序 我已经成功实现了登录过程 但现在我无法找到如何以及在哪里可以获得用户的个人资料信息 如名字 姓氏 个人资料图片等 我的应用程序有权访问名字 姓氏 个人资料图片和电子邮件 以下是
  • Jupyter-Lite 模块/包/库安装

    如何在 Jupyter Lite 中添加更多模块 我尝试了大多数变化 Jupyter Lite 是否在我的机器上使用 python 库 我希望浏览器中的 Jupyterlite 使用本地安装的 python 库 例如在 Jupyter la
  • 如何在 Clojure 中向数组映射添加元素?

    如何在 Clojure 中向数组映射添加元素 我尝试使用 assoc 但它没有被添加 我本质上想为条目数组映射中任何缺失的项目设置默认值 0 defn create entry doc let entry assoc doc id str
  • 结构数组 - 初始化错误

    我在这里创建一些数据结构 使用 MFC 在 MS Visual C 6 0 中编译 是的 它很旧 struct SOpcodeData BYTE m byDataType DWORD m dwMinValue DWORD m dwMaxVa
  • 如何删除数据框中同时出现在两列中相同的行?

    我有一个数据框 DF1 Id1 Id2 0 286 409 1 286 257 2 409 286 3 257 183 在这个 DF 中 对我来说行286 409 and 409 286是一样的 我只想保留其中一行 我所做的所有这一切都是使