Панды - подсчет уникальных значений в столбце A, которые удовлетворяют условию в столбце B, сгруппированных по столбцу C - PullRequest
0 голосов
/ 26 июня 2019

У меня есть поддельный набор данных, представляющий список областей.Эти области содержат элементы, и каждый элемент имеет значение.

Я хотел бы подсчитать для каждой области количество уникальных элементов, значение которых удовлетворяет условию.Мне удалось решить эту проблему, но я хотел бы знать, есть ли в Пандах более чистый способ сделать это.

Вот моя попытка на данный момент:

# Building the fake dataset
dummy_dict = {
    "area": ["A","A", "A","A","B","B"],
    "member" : ["O1","O2","O2","O3","O1","O1"],
    "value" : [90, 200, 200, 150, 120, 120]
}
df = pd.DataFrame(dummy_dict)
# Counting the number of unique members that satisfy the condition by zone 
value_cutoff = 100
df["nb_unique_members"] = df.groupby("area")["member"].transform("nunique")
df.loc[df["value"]>=value_cutoff,"tmp"] = df.loc[df["value"]>=value_cutoff].groupby("area")["member"].transform("nunique")
df["nb_unique_members_above_cutoff"] = df.groupby("area")["tmp"].transform("mean")
df.head()

Есть лилучший способ сделать это в Пандах?Заранее спасибо!

...