python-3.x - 比较不完整单元格的组
问题描述
我有一个包含一些不完整记录的数据框,例如:
fname lname loc
0 a z UK
1 b k USA
2 a z
3 c p DE
4 a z EU
5 b k
6 b k
7 a z ENG
8 c p DE
对于每对 fname 和 lname,我想将丢失的 loc 与其他现有 loc 进行比较。因此,我使用 groupby 函数首先将相似的 fname 和 lname 分组为一对,并为每个分配一个组号。
fname lname loc ngroup
0 a z UK 0
1 b k USA 1
2 a z 0
3 c p DE 2
4 a z EU 0
5 b k 1
6 b k 1
7 a z ENG 0
8 c p DE 2
现在有完整的组,例如 ngroup 2,其中我们有所有 fname 和 lname 对的 loc 值。但其他组 0 和 1 的 loc 值缺失或冲突。我的兴趣是在一个大型数据框中比较这些组中的每一个,以找出不一致和进一步的插补。
有没有办法只过滤空白 loc 组的数据帧并跳过完整的组?
解决方案
您可以使用DataFrameGroupBy.filter
:
>>> df.groupby(["fname", "lname"]).filter(lambda gr: gr["loc"].eq("").any())
fname lname loc
0 a z UK
1 b k USA
2 a z
4 a z EU
5 b k
6 b k
7 a z ENG
对于每个组,这仅保留其loc
列eq
ual 的那些,""
即行的空字符串any
。
推荐阅读
- android-connectivitymanager - 如何注销 registerDefaultNetworkCallback (new ConnectivityManager.NetworkCallback () ...)
- r - 将相关图与系数表相结合(ggplot2 -> ggstatsplot)
- c# - 如何将字符串插入空 XML?
- php - 尝试为特定产品 ID laravel-8 创建项目
- python - “django.db.utils.ProgrammingError:关系“account_account”不存在”,同时使用 Oauth for API 和自定义用户模型
- sql - 触发器与 Oracle 物化视图日志
- python - 多对多关系 | 添加对象
- google-apps-script - 谷歌表格脚本 - 动态范围
- javascript - 通过组件时未正确捕获状态变量
- javascript - JavaScript Else if Chatbot 功能问题