簡體   English   中英

查找已在所有不同的 column2 值中進行交易的 column1 值

[英]Find a column1 value that has transacted in all distinct column2 values

我必須在 column1 中找到所有已在 column2 中的所有不同值中進行交易的值。 例如:

在此處輸入圖像描述

從上表我們可以確定 Fruitseller 'A' 銷售所有水果。

您可以先通過crosstab重塑值,然后通過boolean indexing過濾所有索引值(如果不是0 ):

df1 = pd.crosstab(df['Fruitsellers'], df['Fruits'])

out = df1.index[df1.ne(0).all(axis=1)].tolist()
print (out)
['A']
>>> df Fruitsellers Fruits 0 A Guava 1 A Mango 2 B Apple 3 C Banana 4 D Pineapple 5 A Orange 6 B Orange 7 C Pineapple 8 A Apple 9 A Banana 10 A Pineapple >>> filetr_func = lambda x:sorted(x.Fruits.unique()) == sorted(df.Fruits.unique()) >>> (df ... .groupby("Fruitsellers") ... .apply(filetr_func) ... .where(lambda x:x==True) ... .dropna() ... .index ... .to_list() ... ) ['A']

嘗試:

>>> df.drop_duplicates().value_counts('Fruitsellers').eq(df['Fruits'].nunique()) \
      .loc[lambda x: x].index.tolist()

# Output:
['A']

假設在Fruits列中至少存在一個實例。

如果您確定, drop_duplicates不是強制性的,您沒有多個相同的 (Fruitsellers, Fruits) 行,例如 2 x ('A', 'Mango')。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM