按行删除每行列子集中的重复项,按行仅保留第一个副本

2023-12-02

我有以下 pandas 数据框,超过 700 万行

import pandas as pd

data = {'date': ['2023-02-22', '2023-02-21', '2023-02-23'],
        'x1': ['descx1a', 'descx1b', 'descx1c'],
        'x2': ['ALSFNHF950', 'KLUGUIF615', np.nan],
        'x3': [np.nan, np.nan, 24319.4],
        'x4': [np.nan, np.nan, 24334.15],
        'x5': [np.nan, np.nan, 24040.11],
        'x6': [np.nan, 75.33, 24220.34],
        'x7': [np.nan, np.nan, np.nan],
        'v': [np.nan, np.nan, np.nan],
        'y': [404.29, np.nan, np.nan],
        'ay': [np.nan, np.nan, np.nan],
        'by': [np.nan, np.nan, np.nan],
        'cy': [np.nan, np.nan, np.nan],
        'gy': [np.nan, np.nan, np.nan],
        'uap': [404.29, 75.33, np.nan],
        'ubp': [404.29, 75.33, np.nan],
        'sf': [np.nan, 2.0, np.nan]}

df = pd.DataFrame(data)

如果任何列 x3,x4,x5,x6,x7,v,y,ay,by,cy,gy,uap,ubp 中的数字有任何重复项,我想删除重复项并只保留一个复制,或者列中的一个x6或出现重复项的第一列。

在大多数行中,第一个副本(如果有副本)出现在 x6 列中。

输出应该是这样的,

data = {'date': ['2023-02-22', '2023-02-21', '2023-02-23'],
        'x1': ['descx1a', 'descx1b', 'descx1c'],
        'x2': ['ALSFNHF950', 'KLUGUIF615', np.nan],
        'x3': [np.nan, np.nan, 24319.4],
        'x4': [np.nan, np.nan, 24334.15],
        'x5': [np.nan, np.nan, 24040.11],
        'x6': [np.nan, 75.33, 24220.34],
        'x7': [np.nan, np.nan, np.nan],
        'v': [np.nan, np.nan, np.nan],
        'y': [404.29, np.nan, np.nan],
        'ay': [np.nan, np.nan, np.nan],
        'by': [np.nan, np.nan, np.nan],
        'cy': [np.nan, np.nan, np.nan],
        'gy': [np.nan, np.nan, np.nan],
        'uap': [np.nan, np.nan, np.nan],
        'ubp': [np.nan, np.nan, np.nan],
        'sf': [np.nan, 2.0, np.nan]}

到目前为止我才明白,

check = ['x3', 'x4', 'x5', 'x6', 'x7', 'v', 'y', 'ay', 'by', 'cy', 'gy', 'uap', 'ubp']

df[check] = df[check].where(~df[check].duplicated(), np.nan)

但这是错误的。

有办法完成这件事吗?


尝试这个:

check = ['x3', 'x4', 'x5', 'x6', 'x7', 'v', 'y', 'ay', 'by', 'cy', 'gy', 'uap', 'ubp']
df.loc[:, check] = df.loc[:, check].mask(df.loc[:, check].apply(pd.Series.duplicated, axis=1))
print(df)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

按行删除每行列子集中的重复项,按行仅保留第一个副本 的相关文章

随机推荐

  • 升级后文件丢失

    我安装的是1 1版本 我使用 1 2 版本创建了升级 在这两种产品中我都有 2 个文件
  • 如何拦截提交按钮的点击?

    我有一个表单和一个提交按钮 我想快速检查一些字段 如果未填写某个字段 则空白其他一些字段 我不想更改按钮的 HTML 我只想在 jQuery 中执行此操作 而不向按钮添加任何 onclick 属性 HTML
  • 无效的密钥哈希 facebook android sdk

    我正在尝试使用 Facebook Android SDK 开发一个带有 Facebook 登录按钮的简单应用程序 但我在密钥哈希方面遇到了麻烦 我已经创建了调试密钥和发布密钥 在 mac 中 调试键 keytool exportcert a
  • 给字符串添加空格

    我正在尝试为每个空格添加一个空格 直到column 0 我不知道该怎么做 问题如下 如果你看报纸 你会发现文章的内容很适合专栏 写一个程序 它读取报纸中栏的宽度 然后读取一行文本 对齐文本行以适应 该宽度的列 当你的程序运行时 屏幕应该看起
  • PHP 卷曲,保留会话

    我正在制作一个应用程序 可以从网站上抓取数据 根据需要对其进行格式化 然后将其显示给用户 现在 该站点不允许跨站点脚本请求 因此我使用 PHP 的curl 来检索页面 使用浏览器时 网站会在您首次访问时向您提供 cookie 要求您登录 并
  • 使用 Flexbox 居中时 Safari 不显示 SVG

    我在 Safari SVG 和 Flexbox 方面遇到问题 目标是拥有一个响应式 SVG 保持宽高比 16 9 此外 SVG 应始终位于屏幕的垂直和水平中心 以下代码适用于除 Safari 之外的所有浏览器 我尝试了不同的供应商前缀 但我
  • 核心数据 keyPathsForValuesAffectingValueForKey 仅调用关系,而不调用属性

    我正在使用核心数据来建模一个具有属性和关系的实体 我想让其中一个属性依赖于另外两个关系 核心数据常见问题解答和其他几个示例使用 NSSet keyPathsForValuesAffectingValueForKey NSString key
  • 取消用户定义函数中先前的操作

    是否可以取消用户定义函数中之前的操作 例如 CREATE OR REPLACE FUNCTION transact test RETURNS BOOLEAN AS BEGIN UPDATE table1 SET UPDATE table2
  • 如何从android中的sqlite数据库中检索数据并将其显示在TextView中

    我正在学习安卓 我有一个问题 但我无法解决它 我想从现有数据库中检索数据并将其显示在TextView单击按钮后 My code 数据库助手看起来像这样 public class DataBaseHelper extends SQLiteOp
  • 卷积中的2D步幅是什么意思?

    我知道当步幅只是一个整数时它的含义是什么 通过这一步你应该对图像应用过滤器 但是关于 1 1 或者甚至更多维度的进步 The stride定义滤波器如何沿着输入图像 张量 移动 没有什么可以阻止你沿着不同的轴以不同的方式大步前进 例如 st
  • 如何在 Mac OS X 中监听应用程序启动事件?

    我写了一个AppleScript安装一个SparseBundle图像 我希望它准确地执行Time Machine发射 现在 我定期检查 Time Machine 是否正在运行AppleScript using on idle陈述 on id
  • 带有操作栏和选项卡的 Android 布局

    我是 Android 新手 需要您的建议 我想要一个带有操作栏的活动 我还需要选项卡 但不是操作栏中的选项卡 和操作栏中的下拉列表进行导航 当我点击例如第一个选项卡时 操作栏中的导航列表应填充数据 当秒选项卡时 导航列表应填充其他数据等 当
  • Javascript 错误:JupyterLab 中未定义 IPython

    我有最新 更新的 Anaconda 包 每次我尝试使用 python 3 6 6 绘制某些内容时 我都会在 JupyterLab 中收到以下错误 JavaScript 错误 IPython 未定义 当我使用 ipython 内核在 Spyd
  • 无法解决“c 不是构造函数”错误

    我正在尝试使用 ExtJS 构建一个非常非常基本的 概念验证 应用程序 但我遇到了困难 我想要的只是两个网格从远程 JSON 文件获取数据 但无论我做什么 我都会不断收到主题中的错误 这是我的简单代码 app js Ext Loader s
  • Azure 函数在大型 TIF 文件上调用 Image.FromStream 抛出“参数无效”

    我正在尝试在 Azure 函数中处理多页 TIF 该函数由 blob 存储的更改触发 当触发器运行时 它会调用 function loadFile Stream mpTif Bitmap pageOnes Bitmap Image From
  • 将模块版本作为命令行参数发送给 SBT

    我正在使用 TeamCity 运行 bash 脚本 该脚本利用 SBT Native Packager 将映像发布到 Docker bash 脚本的 sbt 部分如下所示 sbt DdockerRepository repo Dpackag
  • 更新 VS2008 Crystal Reports 上的数据集架构

    我正在使用 Visual Studio 2008 中 Crystal Reports 的内置模块创建一个报告 为此我添加了一个包含多个数据表的数据集 就目前而言 数据表具有一定数量的字段 这些字段将来可能会增长 因此下一个更新我的报告的人将
  • event.currentTarget 的实际用途?

    非常清楚的是event target处理发起事件的 DOM 元素 And event delegateTarget提供我们实际附加监听器的 DOM 元素 但我很难理解我什么时候会使用 事件 currentTarget 查看显示此示例的 jQ
  • 并行 ForEach 与 SQL 插入 C#

    我有一个如下所示的对象 但数据量很大 我们观察到插入到我们的 SQL 数据库中需要很长时间 因为我们使用普通的foreach 主要思想是插入每个部门并获取生成的身份号码 然后插入分配有该部门 ID 的嵌套员工
  • 按行删除每行列子集中的重复项,按行仅保留第一个副本

    我有以下 pandas 数据框 超过 700 万行 import pandas as pd data date 2023 02 22 2023 02 21 2023 02 23 x1 descx1a descx1b descx1c x2 A