如何删除数据框中值的顺序不重要的行

2024-03-26

我有一个像这样的数据框:

source   target   weight
     1       2         5
     2       1         5
     1       2         5
     1       2         7
     3       1         6
     1       1         6
     1       3         6

我的目标是删除重复的行,但源列和目标列的顺序并不重要。事实上,两列的顺序并不重要,应该将其删除。在这种情况下,预期结果将是

source   target   weight
     1       2         5
     1       2         7
     3       1         6
     1       1         6

有什么办法可以做到这一点而不需要循环吗?


Use frozenset and duplicated

df[~df[['source', 'target']].apply(frozenset, 1).duplicated()]

   source  target  weight
0       1       2       5
3       3       1       6
4       1       1       6

如果你想考虑无序source/target and weight

df[~df[['weight']].assign(A=df[['source', 'target']].apply(frozenset, 1)).duplicated()]

   source  target  weight
0       1       2       5
3       1       2       7
4       3       1       6
5       1       1       6

但是,要明确地使用更具可读性的代码。

# Create series where values are frozensets and therefore hashable.
# With hashable things, we can determine duplicity.
# Note that I also set the index and name to set up for a convenient `join`
s = pd.Series(list(map(frozenset, zip(df.source, df.target))), df.index, name='mixed')

# Use `drop` to focus on just those columns leaving whatever else is there.
# This is more general and accommodates more than just a `weight` column.
mask = df.drop(['source', 'target'], axis=1).join(s).duplicated()

df[~mask]

   source  target  weight
0       1       2       5
3       1       2       7
4       3       1       6
5       1       1       6
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何删除数据框中值的顺序不重要的行 的相关文章

  • 为什么 itertools.chain 比扁平列表理解更快?

    在评论中的讨论中这个问题 https stackoverflow com questions 49630581 why does python forbid the use of sum with strings有人提到 虽然连接字符串序列
  • Dataproc:使用 PySpark 从 BigQuery 读取和写入数据时出现错误

    我正在尝试读取一些 BigQuery 数据 ID my project mydatabase mytable 原始名称受保护 来自用户管理的 Jupyter Notebook 实例 内部Dataproc https cloud google
  • pd.merge_asof 在第二次运行时失败,并显示“ValueError:左键必须排序”

    您好 我正在尝试合并最接近匹配的日期时间的两个数据集 我有开放事件和封闭事件的两个时间戳 merge asof 在开放日期运行良好 但返回 ValueError 左键必须排序 在第二个日期时间 我在这两种情况下都按相关的日期时间排序 第一个
  • 如何获取类变量和类型提示?

    假设我定义一个类 其中包含带有类型提示的类级别变量 例如新的 python 3 7dataclasses class Person name str age int def parse me self what do I do here 我
  • 将 Fabric env.hosts 字符串作为变量传递在函数中不起作用

    将 Fabric env hosts 字符串作为变量传递在函数中不起作用 demo py usr bin env python from fabric api import env run def deploy hosts command
  • dask groupby 不合并分区

    我有一组数据 我想要对其进行一些简单的 groupby count 操作 但我似乎无法使用 dask 来完成此操作 我很可能不理解 dask 中执行 groupby reduce 的方式 特别是当索引位于分组键中时 所以我将用玩具数据来说明
  • Python相对导入导致语法错误:无效语法

    我正在尝试安装这个很棒的 python 模块Python Chrono http oss codepoet no python chrono wiki Home我的 python 环境 但至少在 python 2 4 3 和 2 6 6 中
  • buildozer android NDK 未下载 Ubuntu

    我使用的是 Ubuntu 16 04 LTS 操作系统 我已经在 python2 和 python3 中安装了 buildozer android sdk 已安装 但 buildozer 在下载 android NDK 时显示错误 请帮我解
  • 打开文件对象的大小

    有没有办法找到当前打开的文件对象的大小 具体来说 我正在使用 tarfile 模块来创建 tarfile 但我不希望 tarfile 超过特定大小 据我所知 tarfile 对象是类似文件的对象 所以我想通用的解决方案会起作用 ls la
  • 尝试导入 cv2(opencv-python) 包时出错

    我正在尝试使用 cv2 opencv python 包访问我的网络摄像头 当我尝试导入它时 出现此错误 Traceback most recent call last File server py line 6 in
  • 如何将目录结构解析为字典?

    我有目录结构列表 例如 a b a b c a b c d a b c e a b c f g a b c f h a b c f i 我想将它转换成像树结构一样的字典 a b c d None e None f g None h None
  • 使用变量访问 Django 模板中的字典元素

    情况如下 我们渲染一个视图 return render request test html db object db object dict dict 在模板中 我们现在想要访问字典db object key 在Python中你通常会这样做
  • 如何在 Pyspark 中启用 Apache Arrow

    我正在尝试启用 Apache Arrow 来转换为 Pandas 我在用 pyspark 2 4 4 pyarrow 0 15 0 熊猫0 25 1 numpy 1 17 2 这是示例代码 spark conf set spark sql
  • 如果我使用不同数量的核心,XGBoost 会产生相同的结果吗?

    我在两台机器上安装了完全相同版本的 XGBoost 0 4 两台机器之间的唯一区别是 RAM 和内核数量 8 与 16 使用完全相同的数据 我无法重现相同的结果 它们略有不同 小数点后第四 第五位 种子保留为默认值 它是高度特定于实现的 但
  • 带有第二个 y 轴的 Seaborn 图

    i wanted to know how to make a plot with two y axis so that my plot that looks like this to something more like this by
  • 如何使用 RGB 元组列表在 PIL 中创建图像?

    假设我有一个像素列表 表示为具有 3 个 RGB 值的元组 列表如下list im getdata 像这样 0 0 0 255 255 255 38 29 58 如何使用这种格式的 RGB 值 每个元组对应一个像素 创建新图像 感谢您的帮助
  • 识别输入的数据类型

    我正在尝试打印用户输入的数据类型并生成如下表 ABCDEFGH String 1 09 float 0 int true bool etc 我正在使用 Python 3 2 3 并且我知道我可以使用type 获取数据的类型 但在Python
  • 如何在QTextEdit中自动滚动文本(动画效果)?

    我想问一下如何让QTextEdit中的文字滚动 达到动画效果 动画效果应该类似于视频中所示的效果 https www youtube com watch v MyeuGdXv4XM https www youtube com watch v
  • 在 Python 中规范化数字列表

    我需要对值列表进行标准化以适应概率分布 即在 0 0 和 1 0 之间 我明白how标准化 但很好奇 Python 是否有一个函数可以自动执行此操作 我想从 raw 0 07 0 14 0 07 to normed 0 25 0 50 0
  • 减小散点图的文件大小

    我目前正在尝试减小散点图的文件大小 我的代码如下所示 plt scatter a1 b1 plt savefig test ps 其中 a1 b1 是大小为 400 000 左右的数组 它给出的文件大小为 7 8MB 我尝试过添加 plt

随机推荐

  • Linq - 在列表中按周分组

    我想按周对我的数据进行分组 如下所示 var result stats GroupBy i gt SqlFunctions DatePart week i date Select g gt new ReportModel clicks g
  • 如何计算两个单词之间的相似度以检测它们是否重复?

    我有两个单词 我想计算它们之间的相似度 以便对它们是否重复进行排名 如何使用深度学习 NLP 方法实现这一目标 这里有一些解决文本相似性的方法 基于字符串的方法 给定 2 个句子字符串计算余弦相似度 https stackoverflow
  • array_key_exists 不起作用

    array key exists 不适用于大型多维数组 对于前 arr array 1 gt 10 2 gt array 21 gt 21 22 gt 22 23 gt array test gt 100 231 gt 231 3 gt 3
  • 嵌入时间线中的多个推特提要

    我现在正在开发一个网站 其中会有多个公司简介 每个个人资料都需要有一个 Twitter feed 并且在每个 feed 中我需要能够包含至少 2 个 Twitter 用户的推文 正在分析的公司和网站的 feed 本身 可能还有第三个 我有点
  • 提示用户输入密码 - Google OpenID Connect

    我们正在尝试将 Google 的 OpenID Connect 用于商业网络应用程序 但担心用户会使应用程序保持打开状态 并且未经授权的用户将登录 因为用户仍然登录到 Google 因此 OpenID Connect 只是让他们直接登录 W
  • 如何从多个线程同时访问MySQL

    我们正在对 MySQL 进行一个小型基准测试 希望了解它对我们的数据的执行情况 该测试的一部分是看看当多个并发线程用各种查询攻击服务器时它是如何工作的 The MySQL 文档 http dev mysql com doc refman 5
  • 如何使用rest api将数据集作为csv文件导入到power bi?

    我想在 power bi 中自动执行导入过程 但我找不到如何将 csv 文件发布为数据集 我正在为此使用 C 解决方案 有没有办法做到这一点 您无法将 CSV 文件直接导入到 Power BI 服务中已发布的数据集 AddRowsAPIEn
  • 如果时区设置为“UTC”,SimpleDateFormat 会忽略“XXX”

    我正在尝试按以下格式将当前日期时间输出为 UTC 2016 01 11T14 08 42 00 00 final SimpleDateFormat formatter new SimpleDateFormat yyyy MM dd T HH
  • PHP 的项目结构

    我是 PHP 新手 想了解 php 项目的目录结构 我有Java方面的经验 在java中我们有src包含java源文件 WEB INF包含lib和jsp页面 PHP 中有类似的标准目录结构吗 我们在 php 中也有分层吗 就像我们在 jav
  • Python 现在或将来会弃用“pytz”吗?

    pytz https pytz sourceforge net 用于Django 版本 选择当前时区 https docs djangoproject com en 3 2 topics i18n timezones selecting t
  • MYSQL 使用空间索引

    我正在尝试利用空间索引 我有一个 ip 表和一个包含 ip 块范围的 ip2geo 表 我正在尝试将 Geo ID 分配给 ip2geo 表中的每个 ip 当尝试使用列值进行选择时 空间索引不会被使用 EXPLAIN SELECT SELE
  • 为什么通过 AJAX 发送此 POST 变量为 Null? (jquery/php)

    该 JavaScript 用于 加载更多 功能 当单击按钮 moreg 时 它会从 load php 中获取固定数量的元素 function moreg click load var countg 1 load function load
  • 为什么我的 Nginx 反向代理执行 301 重定向而不是代理?

    我在 docker 容器内有一个 Nginx 反向代理 它监听端口 3000 并暴露给 3002 docker run p 3002 3000 这个想法是这个反向代理将代理 my app到我的笔记本电脑中在端口 8080 上运行的实例 和
  • 以编程方式更改视图的右边距?

    这个属性可以在Java代码中动态改变吗 android layout marginRight 我有一个TextView 它必须动态地将其位置向左更改一些像素 如何以编程方式做到这一点 编辑 一种更通用的方法 不依赖于布局类型 除了它是支持边
  • 如何在 IndexedDB 中进行 JOIN 类型查询

    我尝试按照以下教程进行操作http hacks mozilla org 2010 06 comparing indexeddb and webdatabase http hacks mozilla org 2010 06 comparing
  • 如何在 jquery 表单验证上显示独特的成功消息

    希望你能在这方面帮助我 我目前正在使用这个 jQuery 插件 验证 主页 http bassistance de jquery plugins jquery plugin validation 我一直在这里阅读相关问题 但这是最接近的 h
  • 我可以用什么来替换 HTML 中的   ?

    nbsp nbsp 我觉得很丑 边距和 或填充 CSS 属性 如下所示 p style padding left 10px Hello p 值得注意的是 放置这样的内联样式通常被认为是不好的做法 您通常在外部 css 文件中声明一个选择器并
  • 服务器场(服务计划)SKU

    是否有文档列出了 Azure 应用服务计划 服务器场 支持的 sku 名称和层 例如 名称 S1 等级 标准 S1 标准 和 名称 Y1 层 动态 功能消耗计划 支持的值列表 是否有第二年的消费计划 和服务器配置确实有助于规划 有多种方法可
  • Rails 4 中“确认”条件的干净方法

    我的 Rails4 页面上有一个使用 slim 语法的 link to 以下链接 to link to exports path data confirm Are you sure 现在需要仅在特定条件下显示确认消息 我们如何在rails4
  • 如何删除数据框中值的顺序不重要的行

    我有一个像这样的数据框 source target weight 1 2 5 2 1 5 1 2 5 1 2 7 3 1 6 1 1 6 1 3 6 我的目标是删除重复的行 但源列和目标列的顺序并不重要 事实上 两列的顺序并不重要 应该将其