我有一个如下所示的 Dataframe
customer_id,month,Group,category,days_ago
A1,Jan,Premium,saf,13
A1,Jan,Premium,ewf,54
A2,Jan,Lost,ds,32
A3,Jan,Lost,dfs,78
A4,Jan,Lost,sdfg,94
A5,Jan,Loyal,sa,14
A6,Jan,Need Attention,ewf,13
A1,Mar,Premium,efWCC,78
A2,Mar,Need Attention,POI
A3,Mar,Lost,QWE
A4,Mar,Need Attention,QOEP
A4,Mar,Need Attention,POTU
A5,Mar,Loyal,FANC
A6,Mar,Lost,FAS
A7,Mar,New,qewr
A8,Mar,New,wqer
t1 = pd.read_clipboard(sep=',')
我想做以下几点
a)根据一月和三月创建矩阵
B)在矩阵中填入每组的客户数
我希望我的输出在如下所示的表中
我试过下面的方法,但不知道如何把所有东西都放在一张整洁的table上
cust_info = t1.groupby(['customer_id','month','Group']).size().reset_index()
group_info = t1.groupby(['customer_id','Group']).size().reset_index()
group_info.merge(cust_info,on='customer_id',how='left')
有没有办法捕捉他们在Jan
和Mar
这两个月之间从一个组到另一个组的移动?我有一个20K客户的大数据。有没有什么优雅的方法来生成下面的输出?
2条答案
按热度按时间z9gpfhce1#
让我们做点积以提高计算效率
结果
7xzttuei2#
使用
merge
的筛选 Dataframe ,crosstab
:IIUC使用: