Pandas:使用 groupby 和函数进行数据帧过滤

2023-12-04

使用Python 3.3和Pandas 0.10

我有一个通过连接多个 CSV 文件构建的 DataFrame。首先,我过滤掉“名称”列中包含特定字符串的所有值。结果看起来像这样(为了简洁起见缩短了,实际上还有更多列):

Name    ID
'A'     1
'B'     2
'C'     3
'C'     3
'E'     4
'F'     4
...     ...

现在我的问题是我想删除“重复”值的特殊情况。我想删除所有 ID 重复项(实际上是整行),其中映射到该 ID 的相应名称值是not相似的。在上面的示例中,我想保留 ID 为 1、2 和 3 的行。当 ID=4 时,名称值不相等,我想删除它们。

我尝试使用以下代码行(基于此处的建议:Python Pandas:根据出现次数删除条目).

Code:

df[df.groupby('ID').apply(lambda g: len({x for x in g['Name']})) == 1]

但这给了我错误:ValueError: Item wrong length 51906 instead of 109565!

Edit:

而不是使用apply()我也尝试过使用transform(),但这给了我错误:AttributeError: 'int' object has no attribute 'ndim'。非常感谢关于为什么每个函数的错误不同的解释!

另外,我想保留上面示例中 ID = 3 的所有行。

提前致谢, 马蒂斯


而不是长度len,我认为您要考虑每个组中 Name 的唯一值的数量。使用nunique(),并查看这个过滤组的巧妙方法。

df[df.groupby('ID').Name.transform(lambda x: x.nunique() == 1).astype('bool')]

如果你升级到pandas 0.12,你可以使用新的filter群体方法,这使得这更加简洁和直接。

df.groupby('ID').filter(lambda x: x.Name.nunique() == 1)

一般性评论:当然,有时您确实想知道该组的长度,但我发现size是一个比以下更安全的选择len,在某些情况下这对我来说很麻烦。

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

Pandas:使用 groupby 和函数进行数据帧过滤 的相关文章

  • 将 Python 脚本导入另一个脚本?

    我正在阅读 Zed Shaw 的 艰难学习 Python 正在学习第 26 课 在本课中 我们必须修复一些代码 这些代码从另一个脚本调用函数 他说我们不必导入它们来通过测试 但我很好奇我们将如何做到这一点 课程链接 http learnpy
  • IP保持不变

    我正在尝试通过代码连接到 Tor 并更改我的身份 到目前为止我得到的结果是我连接成功但无法更改我的身份 这是我的代码 import socket import socks import httplib def connectTor sock
  • 使用 lxml 和 xpath 解析 xml 文件时如何保留 &

    我试图从输入 xml 文件中提取一些信息 并使用 lxml 和 xpath 指令将其打印到输出文件中 我在读取如下所示的 xml 标签时遇到问题
  • pythonic方式来反转一个字典,其中值是列表?

    我有一本看起来像这样的字典 letters by number 1 a b c d 2 b d 3 a c 4 a d 5 b c 我想将其反转为如下所示 numbers by letter a 1 3 4 b 1 2 5 c 1 3 5
  • Panda如何将行分组到不同的时间桶中?

    我有一个带有名为时间戳的日期时间类型列的数据帧 我想根据时间部分的时间戳将数据帧拆分为多个数据帧 每个数据帧包含按其值模 x 分钟进行值的行 其中 x 是变量 请注意e and f不按原来的顺序 以 10 分钟为模 我希望所有时间都以3在一
  • 忽略 NaN 的列表理解

    我正在尝试构建一个列表理解 其条件是不导入 nan 值 但运气不佳 以下是当前代码以及结果输出 什么条件会将 nan 从列表中删除 def generate labels filtered df columnName return labe
  • 访问具有动态名称的变量的值

    我发现了几个主题 其中讨论了在循环中动态创建单个变量是不好的做法 最好使用字典 就我而言 我不需要动态创建它们 我想要access他们在循环中 我不想用字典对于他们来说 因为这些变量在代码中的很多地方使用 并且只有一个地方我需要这种动态访问
  • HTML 和 BeautifulSoup:当结构事先不知道时如何迭代解析?

    我从一个简单的 HTML 结构开始 如下所示 感谢 alecxe 的帮助 我能够创建这个 JSON 字典 u Outer List u Inner List u info 1 u info 2 u info 3 使用他的代码 from bs
  • 如何将 xlsx 读取为 pandas 数据框,并将公式作为字符串

    我有一个包含一些计算列的 Excel 文件 例如 我在 a 列中有一些数据 而 b 列是使用 a 列中的值计算的 我需要将新数据附加到 a 列并计算 b 列并保存文件 import pandas as pd df pd DataFrame
  • 保持 WebSocket 连接处于活动状态

    我正在研究 WebSocket 协议 并尝试在后端使用 Python 实现一个简单的 ECHO 服务 它似乎工作正常 但连接建立后立即断开 这是我的客户
  • 使用 Keras 时,验证集中未见的类别会出现错误

    我有由数值变量和分类变量组成的数据 分类变量有很多类别 因此我使用嵌入来表示这些类别 我的模型是一个简单的神经网络 我知道当你定义嵌入层时你需要通过input dim number of categories 1为了解释训练中看不见的类别
  • 合法 .xlsx 文件上的 openpyxl load_workbook() 会导致 zipfile.BadZipFile 错误

    我试图做的是将数据帧数据附加到现有的合法 Excel 文件中 我使用了 openpyxl 中的 load workbook 函数 但它系统地返回错误 这是一些在我的机器上崩溃的代码 from openpyxl import load wor
  • python 格式日期时间,带有“st”、“nd”、“rd”、“th”(英文序数后缀),如 PHP 的“S”

    我想要一个 python datetime 对象来输出 并在 django 中使用结果 如下所示 Thu the 2nd at 4 30 但我在python中找不到输出的方法st nd rd or th就像我可以使用 PHP 日期时间格式一
  • 从谷歌云存储桶加载数据

    这是一个从谷歌云存储桶加载数据的函数 action dataset folder path action data set zip path actions zip url http console cloud google com sto
  • 将人员分配到床位 - 自动化方法[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我每年都会帮助举办青年营 将与会者分配到卧室是一项艰巨的任务 有 92 个卧室 活动持续一周 与会者停留的时间长短不一 而且床需要重复
  • python - 从完整地址获取邮政编码

    我有一个数据框 其中一列中有完整地址 我需要创建一个仅包含邮政编码的单独列 有些地址只有五位数字的邮政编码 而其他地址则有额外的四位数字 如何拆分列以获取邮政编码 示例数据 d name bob john address 123 6th S
  • dump() 缺少 1 个必需的位置参数:python json 中的“fp”

    我正在尝试美化 json 格式 但收到此错误 import requests as tt from bs4 import BeautifulSoup import json get url tt get https in pinterest
  • AWS Cognito 作为网站的 Django 身份验证后端

    我对 Cognito 的理解是 它可以用来代替本地 Django 管理数据库来对网站的用户进行身份验证 然而 我没有找到任何带有通过 Cognito 登录屏幕的基本 Hello World 应用程序的详细示例 如果有人可以发布一篇文章 逐步
  • 需要FTP文件而不存储解释器文件通过Python保存在本地

    我正在尝试做一些图像解释器并尝试将它们直接存储到 FTP 服务器 但我的步骤是从本地文件夹上传图像 然后将其转换为蒙版图像 然后它将获得最终输出 但是在我的蒙版和最终输出场景中 临时图像被保存在本地 这是我不想要的 但如果不将图像存储在本地
  • python函数中的Return语句不返回任何内容[重复]

    这个问题在这里已经有答案了 我不明白退货和打印之间的区别 有人告诉我应该在函数语句中使用 return 但它不会返回任何内容 所以我一直在函数中使用 print 但我想了解为什么我的函数中的 return 语句不起作用 def triang

随机推荐

  • C++中重载new和delete

    HI All 我试图重载 new 和 delete 以修复项目中的内存泄漏问题 但遇到了一些编译错误 目前这段代码有点破旧 这是我的 hdr 文件 include
  • 小计 <> 行总和

    我是 DAX 的新手 所以请耐心等待 用最简单的术语来说 我想将欧洲以外的所有区域的度量金额加倍 然后将结果相加 以下是 DAX 的一些示例 DEFINE measure Fact test CALCULATE IF SELECTEDVAL
  • Web 服务与 WCF 服务

    它们之间有什么区别 我什么时候会选择其中一种而不是另一种 这个答案基于一篇不再存在的文章 文章摘要 基本上 WCF 是一个服务层 允许您构建可以使用各种通信机制进行通信的应用程序 有了它 您可以使用点对点 命名管道 Web 服务等进行通信
  • Git 强制推送到 github 的大文件已被删除且不再跟踪而被拒绝

    所以我对 git 还很陌生 并且遇到了一些麻烦 我的本地副本有许多与我的 github 存储库冲突的新更改 但是我的本地副本是正确的 我只想覆盖远程存储库 本地和远程副本有 2 次和 3 次提交的差异 我还意外地将一些非常大的 csv 文件
  • DataGridView 加载速度非常慢。如何优化DataGridView中行的添加?

    datagridview 加载速度非常慢 我该如何优化它 datagridview 有 4 5 千行 我必须根据几个参数动态生成 datagridview 来自数据库的数据 列数 我必须从数据库中的表 id name contact 垂直生
  • 我可以将 JRadioButton 添加到 JTable 中吗

    我尝试添加JRadioButton into JTable通过使用CellEditor and CellRenderer 但我无法添加JRadioButton into JTable 我正在使用 NetBeans 和后端 MySQL 请帮我
  • 如何通过分隔符将数组对象分成两个(或二维数组)

    我想分割一个数组 如下所示 let arrayToSplit Europe France Paris Europe Italy Rome America USA Washington America Canada Ottawa Into l
  • Hive 中的减速器选择

    我有以下记录集来处理 1000 1001 1002 to 1999 2000 2001 2002 to 2999 3000 3001 3002 to 3999 我想使用HIVE处理以下记录集 以便reducer 1将处理数据1000到199
  • 不能从静态上下文中引用非静态方法(方法名())。为什么?

    我对此真的很困惑 我有2节课 Club and 会员资格 在会员资格中我有方法 获取月份 在俱乐部我有加入月份 它采用参数 月份 因此用户输入月份 然后我希望它返回在该特定月份加入的会员资格 我试图从类 Club 中调用 getMonth
  • 方法“getElementsByClassName”无法识别

    我想启动 Windows 资源管理器并登录网站 登录后我想单击注销文本链接 但我收到此错误 Method invocation failed because mshtml HTMLDocumentClass doesn t contain
  • 两个相同的文件根据 C# 的编写方式具有不同的文件大小

    我正在尝试将对象数组序列化为 JSON 格式写入文件 我正在尝试以两种不同的方式编写它 如下所示 ToSerialise Obj new ToSerialise 10 for int i 0 i lt 10 i Obj i new ToSe
  • Django 在文件末尾添加一些奇怪的字符

    当我将文件提交到 django 服务器并且文件名存在于目录中时 我遇到了问题 Django 不会覆盖该文件 但会在名称末尾添加一些字符 我怎样才能添加字符而不是 Django 我的 model py 看起来像这样 class UpLoadF
  • 使用 ggplot2 绘制不同长度的向量

    我有 8 个不同长度的数据向量 MAP 分数 评级的文档数量不同 从 80 到 500 如何将它们读入 R 并在 ggplot2 中将它们绘制为相同的长度 将它们视为从 0 到 1 范围内的不同数量的数据点 它们应该按比例缩小 放大 以便它
  • OCaml 中函数以相反顺序返回列表

    我想从文件中读取一些数字 将它们放入列表中 最后将它们显示在屏幕上 Numbers txt 目前有2 3 5 7 11但是作为输出我得到11 7 5 3 2 unit 为什么会发生这种情况 let rec int list from sb
  • Google App Engine 上的并发请求处理

    我正在几个平台上尝试并发请求处理 该实验的目的是有一个broad衡量某些选定技术的能力界限 我在我的机器上设置了一个 Linux 虚拟机 其中包含一个基本的 Go http 服务器 vanillahttp HandleFunc of the
  • 如何在Linux下不使用QProcess执行shell命令?

    我正在尝试从 Qt 应用程序中读取屏幕分辨率 但不使用 GUI 模块 所以我尝试使用 xrandr grep awk print 1 命令通过QProcess 但它显示警告并且不给出任何输出 unknown escape sequence
  • suds.TypeNotFound:未找到类型:“MerchantCode”

    我正在使用 django 开发一个网络 它处理 wsdl 我有一个处理它的示例代码 但它是用 PHP 编写的 我想将它转换为 python 以用于我的 django 这是 PHP 文件
  • Android 使新的异步任务在后台或 Dropbox Core API 问题中优先于其他任务

    我正在使用 Android 中的核心 API 从 Dropbox 加载多张照片 并在发出请求时对它们进行序列化 我正在将缩略图显示在网格视图中 当用户单击其中一个缩略图时 它会转到另一个活动 它会从服务器获取完整的分辨率版本 它做得很好 但
  • 如何在 Foundry 中解析大型压缩 csv 文件?

    我有一个大型 gzip 压缩 csv 文件 csv gz 上传到一个数据集 该数据集大小约为 14GB 未压缩时为 40GB 有没有一种方法可以使用 Python Transforms 解压缩 读取并将其写入数据集 而不会导致执行器 OOM
  • Pandas:使用 groupby 和函数进行数据帧过滤

    使用Python 3 3和Pandas 0 10 我有一个通过连接多个 CSV 文件构建的 DataFrame 首先 我过滤掉 名称 列中包含特定字符串的所有值 结果看起来像这样 为了简洁起见缩短了 实际上还有更多列 Name ID A 1