我有一个大型数据集,其中有一个二进制变量:
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
如果您真的想继续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)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句