使用基于Google Analytics数据的python pandas数据框:
Customer | medium | dollars | date
ABC cpc 43 04062015
ABC cpc 35 05042015
BCD cpc 25 02012015
BCD referral 15 01112015
CDE referral 67 03262015
CDE organic 66 04042015
CDE organic 15 03062015
DEF organic 33 07092015
DEF referral 90 01052015
DEF cpc 57 04122015
您可以看到客户ABC仅通过cpc进行交易,而客户BCD则通过cpc和推荐进行交易。
为了正确聚合,我需要添加以下列
Customer | medium | dollars | date |medium_year
ABC cpc 43 04062015 cpc
ABC cpc 35 05042015 cpc
BCD cpc 25 02012015 cpc, referral
BCD referral 15 01112015 cpc, referral
CDE referral 67 03262015 referral, organic
CDE organic 66 04042015 referral, organic
CDE organic 15 03062015 referral, organic
DEF organic 33 07092015 organic, referral, cpc
DEF referral 90 01052015 organic, referral, cpc
DEF cpc 57 04122015 organic, referral, cpc
我基本上正在努力建立一个支点,我可以通过列“媒介”列的所有迭代来总结客户端KPI或唯一客户端计数。
重要的是,上述值在列中是唯一的,因此它不是“cpc& referral”一次,而是“referral& cpc”一次。格式是什么并不重要 - &或者逗号;什么是最简单的。
我可能需要创建一个查找表,如下所示:
Customer |medium_year
ABC cpc only
BCD cpc, referral
CDE referral, organic
DEF organic, referral, cpc
有了,我可以使用.loc或查找。但是如何创建查找表呢?或者是否有更简单的方法?谢谢
答案 0 :(得分:3)
您可以使用groupby()
和transform()
执行此操作,例如:
>>> df['medium_year'] = df.groupby('Customer')['medium'].transform(lambda x: ', '.join(set(x)))
>>> df
Customer medium dollars date medium_year
0 ABC cpc 43 4062015 cpc
1 ABC cpc 35 5042015 cpc
2 BCD cpc 25 2012015 cpc, referral
3 BCD referral 15 1112015 cpc, referral
4 CDE referral 67 3262015 referral, organic
5 CDE organic 66 4042015 referral, organic
6 CDE organic 15 3062015 referral, organic
7 DEF organic 33 7092015 referral, organic, cpc
8 DEF referral 90 1052015 referral, organic, cpc
9 DEF cpc 57 4122015 referral, organic, cpc