python - 根据组过滤唯一值
问题描述
我有下表:
id L1 L2
1 A B
1 A C
1 A D
1 B B
1 B C
1 B D
2 D A
2 D F
我想过滤掉 中的任何L2
值L1
,但仅限于同一id
组中。所以对于id=1
,我们过滤掉L2=B
,但保留L2=D
。对于id=2
,我们保持L2=A
。
输出应该是这样的:
id L1 L2
1 A C
1 A D
1 B C
1 B D
2 D A
2 D F
解决方案
我假设您正在使用pandas
:
df.groupby('id').apply(lambda x: x[~x.L2.isin(x.L1)]).reset_index(drop=True)
id L1 L2
0 1 A C
1 1 A D
2 1 B C
3 1 B D
4 2 D A
5 2 D F
推荐阅读
- selenium - Chrome 无法启动 - Chrome 版本 75.0.3770.100
- asp.net-core - 以编程方式将条目插入到 ASP.NET Core Web App 的动态 web.config
- angular - Ion Segments (Tabs) 通过一个参数过滤我的卡片列表
- java - Java:使用反射或将实例对象存储在列表中?
- php - 来自 PHP 表单的用户输入何时会变得有害?
- android - React-native 错误:清单合并失败
- c# - 如何解决集成测试 Asp.Net MVC 中的依赖关系
- spring - 如何在 Spring Boot 和 kotlin 中初始化 HTTP API
- python - 默认 Adam 优化器在 tf.keras 中不起作用,但字符串 `adam` 可以
- java - 错误:类扩展 HttpServlet 时无法找到或加载主类