熊猫保留/添加在groupby和agg期间“丢失”的列

时间:2018-10-09 12:03:15

标签: python pandas

伙计们,

我正在研究一个群组脚本,该脚本显示过去30天每天Google广告帐户的CM2(贡献边际收益2)发展情况。

我有一个基于最近30天的“广告系列效果报告”的数据框,它看起来像这样,并持续了1000多个行:

 |   Date   |Sale| CM2 |Views|Click|CPC |CTR | CPM |Cost |Data_PullDate
0|2018-09-09|3   |37.44|1436 |77   |0.25|5.36|13.86|19.91|2018-10-09  
1|2018-09-09|0   | 0.00|1359 | 6   |0.29|0.44| 1.31| 1.79|2018-10-09 
2|2018-09-10|0   | 0.00|  98 | 3   |0.38|3.06|11.63| 1.14|2018-10-09 
3|2018-09-10|3   |38.04|2524 |83   |0.30|3.29|10.08|25.46|2018-10-09 

我将数据按日期列分组,然后使用Pandas的agg函数计算KPI列的总和或均值:

grouped_data = df.groupby(df['Date']).agg({'Sales':['sum'],'CM2':['sum'],'Views':['sum'],'Click':['sum'],'CPC':['mean'],'CTR':['mean'],'CPM':['mean'],'Cost':['sum']})

结果是按日期的预期列总和和平均值:

    Date  |  Cost | CPM |CTR | Views|CPC |  CM2  |Sale|Click
             sum   mean  mean  sum   mean   sum    sum  sum
2018-09-09|1971.78|19.44|6.27|108821|0.40|4903.63|188 |5585
2018-09-10|1936.36|20.11|5.91| 94401|0.41|4263.38|194 |4914

从列数的差异可以看出,从初始数据框的列来看,Data_PullDate列丢失了,但是这一列对我来说是至关重要的。 该列代表数据被提取的日期,也是脚本运行的日期。

如何保留/添加列Data_PullDate到grouped_data数据框? 另外,如何保持列的初始顺序?

1 个答案:

答案 0 :(得分:1)

这取决于您的数据,但是一种解决方案(如果Data_Pulldate始终相同)将添加另一种聚合

'Data_PullDate': ['min']

如果有所不同,我不确定我是否理解数据集-我怀疑您想将其添加为GroupBy的第二列。