python - 分组行之间的 Pandas 过滤
问题描述
假设我有一个看起来像这样的熊猫表“df”
现场1 | FIELD2 | FIELD3 | FIELD4 | FIELD5 |
---|---|---|---|---|
00147 | 65,69 | 1 | 2 | 65,67 |
00147 | 65,68 | 2 | 3 | 65,69 |
00147 | 66,70 | 3 | 4 | 66,68 |
00147 | 65,69 | 4 | 5 | 66,70 |
如果 FIELD5 值确实出现在 FIELD2 列中,并且如果它们共享它们共享相同的 FIELD1 值,我想过滤这些行。
期望的输出
现场1 | FIELD2 | FIELD3 | FIELD4 | FIELD5 |
---|---|---|---|---|
00147 | 65,69 | 1 | 2 | 65,67 |
00147 | 66,70 | 3 | 4 | 66,68 |
我尝试使用重复的数据库“df_1”进行过滤
df[(df['FIELD1']==df_1['FIELD1']) & (df['FIELD5'].isin(df_1['FIELD2'])]
但是,根据不共享该 FIELD1 值的行过滤了更多行。有什么建议吗?
解决方案
您可以使用加入/合并来实现此目的:
df_merge = df.merge(df
, left_on=['FIELD1','FIELD2']
, right_on=['FIELD1','FIELD5']
,suffixes=('_l', '_r')
)
df_merge.loc[:,['FIELD1_l','FIELD2_l','FIELD3_l','FIELD4_l','FIELD5_l']]
推荐阅读
- c++ - 内联函数中具有内部链接的全局变量
- azure - 防止 Azure 中的 HTTP 主机标头攻击
- ios - 如何在 podfile 中指定 CocoaPods 存储库分支
- python - 两个非常相似的正则表达式,其他找不到匹配
- notepad++ - 如何在记事本++中搜索和替换匹配的命中
- rest - Autodesk Forge,.Net API POST 方法不返回新对象 ID
- java - 使用 Microsoft graph Java Sdk 创建发布请求以将用户添加到组
- java - 如何减少 Spring Boot 控制器中的重复代码
- docker - MDNS 从 Kubernetes 内广播?
- javascript - Javascript工具提示没有随着鼠标移动而移动