Pandas - 保持至少有两个不同代码的组

2024-03-04

我正在使用具有以下结构的 DataFrame:

import pandas as pd

df = pd.DataFrame({'group' : [1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 4, 4], 
                   'brand' : ['A', 'B', 'X', 'A', 'B', 'C', 'X', 'B', 'C', 'X', 'A', 'B'], 
                   'code' : [2185, 2185, 0, 1410, 1390, 1390, 0, 3670, 4870, 0, 2000, 0]})

print(df)

    group brand  code
0       1     A  2185
1       1     B  2185
2       1     X     0
3       2     A  1410
4       2     B  1390
5       2     C  1390
6       2     X     0
7       3     B  3670
8       3     C  4870
9       3     X     0
10      4     A  2000
11      4     B     0

我的目标是仅查看具有至少两个不同代码的组。过滤标准中不应考虑用 0 标记的缺失代码。例如,即使第 4 组中的两条记录具有不同的代码,我们也不会将这一组保留在最终的 DataFrame 中,因为其中一个代码丢失。

上面示例中生成的 DataFrame 应如下所示:

    group brand  code
1       2     A  1410
2       2     B  1390
3       2     C  1390
4       2     X     0
5       3     B  3670
6       3     C  4870
7       3     X     0

我没有设法解决这个问题。我认为第一步应该是创建一个掩码来删除缺少 (0) 代码的记录。就像是:

mask = df['code'].eq(0)
df = df[~mask]

print(df)

    group brand  code
0       1     A  2185
1       1     B  2185
3       2     A  1410
4       2     B  1390
5       2     C  1390
7       3     B  3670
8       3     C  4870
10      4     A  2000

现在只保留至少有两个不同代码的组,但我不知道如何在 Python 中解决这个问题。另外,此方法将删除我不想要的最终 DataFrame 中缺少代码的记录。我想了解整个团队的情况。

任何额外的帮助将不胜感激。


This is transform():

mask = (df.groupby('group')['code']
          .transform(lambda x: x.mask(x==0)    # mask out the 0 values
                                .nunique()     # count the nunique
                    )
          .gt(1)
       )
df[mask]

Output:

   group brand  code
3      2     A  1410
4      2     B  1390
5      2     C  1390
6      2     X     0
7      3     B  3670
8      3     C  4870
9      3     X     0

Option 2:类似的想法,但没有 lambda 函数:

mask = (df['code'].mask(df['code']==0)    # mask out the 0 values
            .groupby(df['group'])         # groupby
            .transform('nunique')         # count uniques
            .gt(1)                        # at least 2
       )
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Pandas - 保持至少有两个不同代码的组 的相关文章

随机推荐

  • 使用 webView 时是否可以将 HTML 表单中的数据获取到 android 中?

    我正在 HTML 中制作一个非常简单的表单 可以使用 webview 在 android 中查看 该 webview 使用文本框接收您的姓名 当您单击按钮时 它会将其显示到一个段落中 并且它是使用 html 和 javascript 制作的
  • 如何隐藏ide主窗口标题栏? (在 IntelliJ IDEA 中)

    Title bar is completely useless for me Info it shows i can see in navigation bar It only takes space Is it possible to h
  • 提取分隔符之间具有特定长度的整数

    给定一个字符串列表 例如 L 1759 1 83 0 email protected cdn cgi l email protection email protected cdn cgi l email protection 1094 em
  • 如何根据 MVCContrib 网格中的数据设置行的样式?

    我正在修补MVCContrib 网格 http mvccontrib codeplex com wikipage title Grid并陷入如何根据数据格式化网格中的一行数据的问题 例如 假设我们有一个产品网格 其中每个产品都有名称 价格和
  • 端点“/api-docs”不适用于自定义 GsonHttpMessageConverter

    我从 Springfox Swagger 迁移到 Springdoc OpenApi 我在有关 springdoc 的配置中添加了几行 springdoc pathsToMatch api api docs path api docs sw
  • 在外部文件中保存Python字典?

    我正在编写的代码本质上是一个超级基本的人工智能系统 基本上是 Cleverbot 的简单 Python 版本 作为代码的一部分 我有一个起始字典 其中有几个键 其中包含列表作为值 文件运行时 字典会被修改 创建键并将项目添加到关联列表中 所
  • 使用 jquery 和 cookie 切换和保留状态

    我有 2 个用 jquery 切换的 div 我希望它们在页面重新加载时具有相同的状态 因此使用 coockie 但无论如何它都会卡在其中一个 div 上 那是因为我似乎无法设置正确的 coockie 怎么了
  • 重命名 Rails 4 应用程序

    我创建了一个 Rails 4 应用程序 但名称已更改 我已经更新了文件夹名称 但我想知道我需要进入并更新哪些文件才能在整个站点中使用这个新名称 或者是否有 Rails 命令可以快速轻松地完成此操作 https github com mors
  • CSS 转换被 JavaScript 阻止

    我正在尝试在veryJavaScript 的密集期 其中构建并填充了一些相当重的 3d 数组 该加载栏需要保持为空 直到用户单击按钮 发生结冰现象是否我在用着 webkit transition 这个应用程序可以是 chrome 独有的 在
  • 关于 requireEnd Matcher 方法的澄清

    直接来自this http docs oracle com javase 7 docs api java util regex Matcher html requireEnd 28 29java API 公共布尔 requireEnd 如果
  • 如何合并字体?

    我有很多字体 OpenSans bold ttf OpenSans boldItalic ttf OpenSans extrabold ttf OpenSans italic ttf OpenSans light ttf 我将如何继续只创建
  • 在RecyclerView顶部设置进度条并在数据加载后删除

    我想要一个加载图标 显示在 RecyclerView 所在位置的顶部 并在数据加载完成后消失 它看起来像 谁能帮我吗 我的代码显示 RecyclerView 上方有一个 TextView 上面写着 正在加载 并在数据加载后消失 但 Recy
  • 在 cURL PHP 中发送请求时出现 401 未经授权的响应

    我正在尝试使用 GitLab API 解决我的 gitlab 项目问题 我已经尝试过 但它似乎不起作用
  • ms Access 从查询中的文件导入表

    有没有办法让 msAccess DB 查询从文件导入表 是的 只要数据被组织起来 您可以将 VBA 或宏与 TransferText 一起使用 也可以使用菜单或功能区中的 获取外部数据 这将指导您完成这些步骤 EDIT 您可以从 CSV 导
  • NSString 到 NSArray

    我想分割一个NSString进入一个NSArray 例如 给定 NSString myString ABCDEF 我想要一个NSArray like NSArray myArray A B C D E F 如何使用 Objective C
  • GWT为移动设备定制CellList多选模型

    我有一个使用 MultiSelectionModel 的应用程序 它工作得很好 但我需要我正在开发的网站才能在移动设备上工作 所以我无法使用键盘来帮助选择元素 因为它不支持 不存在 例如 在桌面上 我只需按住 ctrl 并单击我想要选择的所
  • SQLAlchemy 提交 pickle 类型

    我在 sqlalchemy 中提交对 pickle 类型 列表 的更改时遇到问题 提交后它将表现得好像什么也没发生一样 这是我尝试提交的功能 def commit move game id player move game game que
  • 管理包:PyCharm vs conda vs pip

    我是 Python 新手 最近在 Windows 10 上安装了 PyCharm 2016 3 我还使用 Anaconda 3 我对包管理不太了解 想更好地了解它 通常我只是使用conda update all但我注意到 通过检查本地 Py
  • Html画布1600x1200屏幕撕裂

    我见过几个关于这个问题的问题 但它们都已经存在了三年多了 通常最后都会说还没有太多解决办法 所以我想知道是否有什么改变 我目前正在开发一款游戏 该游戏使用每秒发生 60 次的间隔在画布上进行绘制 它在我的 iPhone 和 PC 上运行得很
  • Pandas - 保持至少有两个不同代码的组

    我正在使用具有以下结构的 DataFrame import pandas as pd df pd DataFrame group 1 1 1 2 2 2 2 3 3 3 4 4 brand A B X A B C X B C X A B c