Озадачен поведением панд в групповом - PullRequest
0 голосов
/ 10 марта 2019

У меня есть большой набор данных, который имеет среди прочего двоичную переменную:

Transactions['has_acc_id_and_cus_id'].value_counts()
1    1295130
0     823869
Name: has_acc_id_and_cus_id, dtype: int64

Когда я группирую этот набор данных --Transactions--, используя эту конкретную двоичную переменную в качестве одной переменной группировки, я получаю сгруппированный набор данных --df100--, который имеет только один уровень вышеупомянутой двоичной переменной.

df100 = Transactions.groupby(['acc_reg_year', 'acc_reg_month', 'year', 'month',\
                              'has_acc_id_and_cus_id'])[['net_revenue']].agg(['sum', 'mean', 'count'])

df100['has_acc_id_and_cus_id'].value_counts()
1    1421
Name: has_acc_id_and_cus_id, dtype: int64

1 Ответ

0 голосов
/ 10 марта 2019

Если вы действительно хотите просто groupby на has_acc_id_and_cus_id, тогда вам нужна команда ...

df100 = Transactions[['has_acc_id_and_cus_id', 'net_revenue']].groupby(['has_acc_id_and_cus_id']).agg(['sum', 'mean', 'count'])

Это подмножество только той переменной, которую вы хотите суммировать (has_acc_id_and_cus_id)и переменная, которую вы хотите суммировать (net_revenue) ...

Transactions[['has_acc_id_and_cus_id', 'net_revenue']]

... затем вы группируете их по has_acc_id_and_cus_id ...

Transactions[['has_acc_id_and_cus_id', 'net_revenue']].groupby('has_acc_id_and_cus_id')

...перед тем, как затем применить функцию agg(), чтобы получить желаемую статистику.

Ошибка, которую вы сделали, основываясь на вашей заявленной цели суммирования только с помощью has_acc_id_and_cus_id, имела четыре другие переменные, которые вы группировали по (acc_reg_year, acc_reg_month, year и month).

Если вы действительно хотите получить сводку по has_acc_id_and_cus_id в пределах всех остальных, тогда ваш исходный код был верным,но, возможно, отсутствуют значения в одном или нескольких из acc_reg_year, acc_reg_month, year и month при has_acc_id_and_cus_id == 0, поэтому проверьте свои данные ...

Transactions[Transactions[`has_acc_id_and_cus_id`] == 0][[`acc_reg_year`, `acc_reg_month`, `year`, `month`]].head(100)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...