选择希望列中的值具有多个值的行

错位18

我有一个多列的数据框。

df= pd.DataFrame({
    'Name': ['Peter', 'Peter', 'Peter', 'Jake', 'Jake'],
    'Product' : ['A', 'B', 'C', 'A', 'B']
    })


    Name Product
0  Peter       A
1  Peter       B
2  Peter       C
3   Jake       A
4   Jake       B

列具有nameproduct

我该如何选择那些names的多种产品,例如产品ABC换句话说,我希望彼得具有ABC,而不是杰克,因为他只有AB

编辑:我不希望这样的name■找JUST A,B和C,但我只是想看看他们是否有AB,和C因此,如果Peter拥有D(样本中未包含),也很好。

我试过了:

df[(df.Product == 'A') & (df.Product == 'B') & (df.Product == 'C')]

但这没有结果。

df[(df.Product == 'A') | (df.Product == 'B') | (df.Product == 'C')]

而这只是连接行。

贝尼

这是isin使用filter-的一种方法但是如果有大数据则很慢:

df=df.groupby('Name').filter(lambda x : pd.Series(['A','B','C']).isin(x['Product']).all())
df
    Name Product
0  Peter       A
1  Peter       B
2  Peter       C

来自Jez的测试案例

df= pd.DataFrame({
    'Name': ['Peter', 'Peter', 'Peter', 'Jake', 'Jake','Jake'],
    'Product' : ['A', 'B', 'C', 'A', 'B','A']
    })
df.groupby('Name').filter(lambda x : pd.Series(['A','B','C']).isin(x['Product']).all())
    Name Product
0  Peter       A
1  Peter       B
2  Peter       C

根据他的提供 'Product' : ['A', 'A', 'C', 'A', 'B','A']

df.groupby('Name').filter(lambda x : pd.Series(['A','B','C']).isin(x['Product']).all())
Empty DataFrame
Columns: [Name, Product]
Index: []

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何选择某列具有多个不同值的行?

XPATH-如何选择在表的同一行的列中具有多个值的tr?

选择子行中的列具有特定值的行?

从具有多个值的行中随机选择1个值;用清除的数据创建一个新列

选择行中具有最少NaN值的矩阵的列

选择列中具有特定值的行

SQL选择两列中具有不同值的行

选择列中具有特定值的行

MySQL选择行仅在列中具有指定的值

选择具有增量列值的行

MySQL选择值在其他行中具有多个值

根据列中的多个值选择行

SQL选择具有与其他表中的列值匹配的列值的行

选择不同列中具有相同值的行或 null 。有多行具有相同的 id

选择在一列中具有相同值而在另一列中具有不同值的行

如何过滤具有一列中的选择值但具有公共ID的行?

当另一列具有匹配值时,选择一列中具有最大值的行

选择columnA具有多个唯一的columnB值的行

选择具有多个重复字段值的行

SQL-如何选择具有多个相同值的行

在一行中选择具有多个值的 id

选择多个列表中有多个列值的行

SQL-仅选择具有特定多个值的列

选择多个具有最小值的列

Oracle 12c-选择组中具有多个值的行

选择两列具有相同值的所有行?

如何在 SharePoint 列表中创建具有多个值的选择列?

如何计算具有多个观察值/行的,在列的不同行中具有值组合的参与者的数量?

如何选择相关表中具有多个值的记录?