伙计们,
我正在研究一个群组脚本,该脚本显示过去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数据框? 另外,如何保持列的初始顺序?
答案 0 :(得分:1)
这取决于您的数据,但是一种解决方案(如果Data_Pulldate
始终相同)将添加另一种聚合
'Data_PullDate': ['min']
如果有所不同,我不确定我是否理解数据集-我怀疑您想将其添加为GroupBy
的第二列。