подсчитать уникальные значения для одного столбца с помощью groupby (Pandas) - PullRequest
0 голосов
/ 18 июня 2020

Я бы хотел подсчитать для каждой даты количество уникальных customer_id сгруппированных по устройству и стране

Основная таблица

date        device   country  customer_id
2019-01-01  phone    UK       1284
2019-01-01  phone    UK       3932
2019-01-01  phone    UK       1284
2019-01-01  tablet   UK       1284
2019-01-01  tablet   UK       3822
2019-01-01  tablet   UK       3924
2019-01-01  tablet   JP       9393
2019-01-01  tablet   JP       3932
2019-01-01  tablet   JP       3932


Таблица вывода

date         device country  count_distinct_customerID
2019-01-01   phone  UK       2
2019-01-01   tablet UK       3
2019-01-01   tablet JP       2

Это то, что я пробовал до сих пор, но безуспешно:

df2 = df.groupby(['date','device','country']).agg(['nunique'])

1 Ответ

0 голосов
/ 18 июня 2020

Используйте, DataFrame.groupby на date, device и country, затем используйте .agg для агрегирования количества уникальных customer_id в сгруппированном фрейме данных:

df1 = (
    df.groupby(['date','device','country'], sort=False)
    .agg(count_distinct_customerID=('customer_id', 'nunique'))
    .reset_index()
)

# print(df1)
         date  device country  count_distinct_customerID
0  2019-01-01   phone      UK                          2
1  2019-01-01  tablet      UK                          3
2  2019-01-01  tablet      JP                          2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...