替换 pandas 数据框中很少出现的值

2024-01-06

我有一个中等大(约 60,000 行 x 15 列)的 csv 文件,我正在使用 pandas 处理它。每行代表一个人并包含个人数据。我想匿名呈现数据。我想要这样做的一种方法是替换特定列中罕见的值。我最初尝试这样做:

def clean_data(entry):
    if df[df.column_name == entry].index.size < 10:
        return 'RARE_VALUE'
    else:
        return entry

df.new_column_name = df.column_name.apply(clean_data)

但每次运行它都会冻结我的系统。不幸的是,这意味着我没有有用的调试数据。有谁知道执行此操作的正确方法?该列包含字符串和空值。


我想你想按列名称分组:

g = df.groupby('column_name')

例如,您可以使用过滤器来仅返回那些在 column_name 中出现超过 10 次的内容的行:

g.filter(lambda x: len(x) >= 10)

要使用“RARE_VALUE”覆盖列,您可以使用转换(计算结果once对于每个组,并适当地分散它):

df.loc[g[col].transform(lambda x: len(x) < 10).astype(bool), col] = 'RARE_VALUE'

正如 DSM 指出的,以下技巧是much faster:

df.loc[df[col].value_counts()[df[col]].values < 10, col] = "RARE_VALUE"

以下是一些 timeit 信息(以显示 DSM 的解决方案是多么令人印象深刻!):

In [21]: g = pd.DataFrame(np.random.randint(1, 100, (1000, 2))).groupby(0)

In [22]: %timeit g.filter(lambda x: len(x) >= 10)
10 loops, best of 3: 67.2 ms per loop

In [23]: %timeit df.loc[g[1].transform(lambda x: len(x) < 10).values.astype(bool), 1]
10 loops, best of 3: 44.6 ms per loop

In [24]: %timeit df.loc[df[1].value_counts()[df[1]].values < 10, 1]
1000 loops, best of 3: 1.57 ms per loop
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

替换 pandas 数据框中很少出现的值 的相关文章

随机推荐

  • 如何在不调用 onCreate() 的情况下返回第一个活动

    我有3个活动 活动A 活动B 活动C 这就是流程A gt B gt C 现在我想从 C 进入活动 A 即 C gt A 而不调用活动 A 的 onCreate 到目前为止我的代码是 但是它会调用Activity的onCreate 我想调用R
  • 使用 py2neo WriteBatch 将大图数据插入 Neo4j

    我有一个由以下文件表示的图表 VertexLabel txt gt 每行包含每个顶点的属性 EdgeLabel txt gt 每行包含每条边的属性 EdgeID txt gt 每行包含 3 个分隔的整数 对应于标签文件中的索引 源索引 目标
  • 如何在 PHP 中使用类常量作为类属性?

    这是不起作用的代码 class MyClass const myconst somevalue private myvar array 0 gt do something with self myconst 似乎类常量在 编译时 不可用 而
  • listStatus 端点包括响应中的收件人状态

    有没有办法在 listStatus 端点的响应正文中包含收件人状态 这是我提出的卷曲请求 curl X PUT https na2 docusign net restapi v2 accounts XXXXX envelopes statu
  • Javascript 相当于 Java 的 UUID 类

    在java中 你可以做类似的事情 UUID id UUID fromString eb66c416 4739 465b 9af3 9dc33ed8eef9 long msb id getMostSignificantBits long ls
  • 把jdbc操作放在actor中好不好?

    我正在构建一个传统的 Web 应用程序 通过 JDBC 执行数据库 CRUD 操作 我想知道将 jdbc 操作放入当前请求处理线程之外的参与者中是否合适 我做了一些搜索 但没有找到演示此功能的教程或示例应用程序 那么有哪些缺点和优点呢 这种
  • 如何在 PHP 中重命名子数组键? [复制]

    这个问题在这里已经有答案了 当我对名为 tags 多维数组 的变量进行 var dump 时 我得到以下信息 Array 0 gt Array name gt tabbing url gt tabbing 1 gt Array name g
  • 如何让查询生成器将其原始 SQL 查询输出为字符串?

    给出以下代码 DB table users gt get 我想获取上面的数据库查询生成器将生成的原始 SQL 查询字符串 在这个例子中 它将是SELECT FROM users 我该怎么做呢 Answer recommended by PH
  • 以编程方式更改 Android EditText 的色调颜色

    我正在尝试改变一个的着色颜色EditText在运行时以编程方式查看 基本上我想改变你通常应用的内容 attr colorControlNormal就像在默认背景可绘制 https github com android platform fr
  • nth-child:如何选择两个一组的元素

    假设我有一个这样的表 div class fc slats table tbody tr td class fc widget content fc major 16 td td class fc widget content fc min
  • play 和 postgres 未找到关系错误(虽然表确实存在)

    我有一个名为 ETL TABLES 的表 它驻留在公共模式上 在 我的 application conf 我有以下行 hibernate default schema public 这应该意味着 postgres 的 search path
  • Android - 等待齐射响应以继续

    我构建了一个应用程序 它在地图中加载标记 我为 volley JSON 文件获取标记 但我需要首先加载 volley 然后继续执行代码 因为另一种方式显示错误纬度空 这个参数加载得不快 另一个方法先执行并显示 null 我的负载标记齐射代码
  • React/TypeScript:具体为组件输入 props.children

    假设我们有一个组件Foo呈现props children和另一个组件Bar 两个模块都导出一个 props 接口 有没有办法强制执行Foo的孩子可以是only类型的Bar 理想情况下 我们可以在构建时使用 TypeScript 来完成此任务
  • 在 CakePHP 3 中连接多个数据库

    我想将一些数据历史记录和日志存储在其他数据库表中 就未来的记录而言 这可能是非常大的数据库 还应该支持跨数据库 SQL 连接 所以请帮我解决这个问题 提前致谢 您可以按照以下步骤在同一个 cakephp 应用程序中使用多个数据源 在 Con
  • .NET 中的标准输入和输出

    如何从标准输入读取并写入标准输出 System Diagnostics Process StandardInput 的 MSDN 参考没有帮助 因为它单独启动进程 然后重定向标准输入 输出 但是如果该进程已经在运行并调用我的应用程序来为其提
  • 需要一个 CouchDB 技巧来按日期排序并按组过滤

    我有包含 日期 和 组 字段的文档 这是我的观点 byDateGroup map function doc if doc date doc group emit doc date doc group null 与此等效的查询是什么 sele
  • Java 中的独立 Socket.IO 服务器

    我正在寻找一个用 Java 编写的简单 Socket IO 服务器 我熟悉this one http code google com p socketio java 但它依赖于 servlet 而我没有在我的应用程序中使用它 我正在寻找类似
  • Spark python中基于条件过滤RDD并提取匹配数据

    我有这样的数据 cl id cn id cn value 10004 77173296 390 0 10004 77173299 376 0 10004 77173300 0 0 20005 77173296 0 0 20005 77173
  • 媒体源扩展 (MSE) 与 WebRTC 的比较

    媒体源扩展和 WebRTC 之间的根本区别是什么 我可以暂时表达一下我自己的理解吗 WebRTC 包含一个 RTCPeerConnection 它处理从媒体流获取流并将它们传递到协议以流式传输到应用程序的连接对等点 WebRTC 似乎在底层
  • 替换 pandas 数据框中很少出现的值

    我有一个中等大 约 60 000 行 x 15 列 的 csv 文件 我正在使用 pandas 处理它 每行代表一个人并包含个人数据 我想匿名呈现数据 我想要这样做的一种方法是替换特定列中罕见的值 我最初尝试这样做 def clean da