【问题标题】:Filter unique values conditional on groups根据组过滤唯一值
【发布时间】:2018-10-04 20:29:11
【问题描述】:

我有下表:

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

我想过滤掉L1 中的任何L2 值,但只能在同一个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 吗?如果没有,您在此数据结构中使用什么

标签: python python-3.x pandas dataframe


【解决方案1】:

我假设你使用的是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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多