Python pandas: 连接列查找

Python pandas: concatenated column lookup

使用基于 Google 分析数据的 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和referral进行了交易。

为了正确聚合,我需要添加以下列

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

我基本上是在朝着一个支点努力,我可以在其中按列 "medium".

的所有迭代总结客户 KPI 或唯一客户计数

重要的是,以上值在列中是唯一的,因此不是 "cpc & referral" 一次和 "referral & cpc" 一次。格式是什么并不重要 - & 或逗号;最简单的。

我可能需要创建一个查找 table,像这样:

Customer |medium_year
ABC        cpc only
BCD        cpc, referral
CDE        referral, organic
DEF        organic, referral, cpc

一旦我有了它,我就可以使用 .loc 或查找。但是如何创建查找 table?还是有更简单的方法?谢谢

您可以使用 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