我正在为工作执行客户流失分析,并且我一直在尝试基于现有数据帧创建多索引数据帧。你知道吗
我目前有一个数据帧结构类似于:
df.head(3)
CustomerID Lifetime Cohort Monthly_Pay Ltv_Rev Sub Pln_strt pln Can
----------------------------------------------------------------------------
fgvghc 10 2010-5 14.99 150 2010-5 2010-5-3 2011-5-3
dhsdjk 2 2010-5 14.99 179 2010-5 2010-5-9 2010-7-8
5uk0ez 3 2010-6 5.99 18 2010-6 2010-6-4 2010-8-2
我正试图找出20个月内每个群体的流失率。“队列”列是队列本身,而“订阅”列则标记保留了多少用户的月份。示例如下:
Total_Users
Cohort Subscribe
-------------------------------
2010-5 2010-5 2
2010-6 2
2010-7 1
...
到目前为止,我一直在尝试:
grouped = df.groupby(['Cohort', 'Subscribe'])
grouped.agg({'CustomerID': pd.Series.nunique})
但这不起作用;它只打印每个队列中的总用户数,而没有真正区分队列和订阅列:
Total_Users
Cohort Subscribe
-------------------------------
2010-5 2010-5 2
2010-6 2010-6 4
2010-7 2010-7 12
我也试过:
grouped = df.groupby(['Cohort', 'Subscribe'])['CustomerID'].size()
更新:为了空间,我没有发布我的实际数据帧,但是现在我意识到我遗漏了可能重要的信息。我添加了计划开始日期和计划取消日期。你知道吗
我认为,映射每个队列的保留期的问题源于使用CustomerID、总客户生存期以及开始和取消日期的错误方法。你知道吗
有人能帮助新手吗? ... 作为参考,我一直以此为指南。 http://www.gregreda.com/2015/08/23/cohort-analysis-with-python/
似乎您需要使用
size()
:结果:
相关问题 更多 >
编程相关推荐