假设我有一个3列的数据框,dt, unit, sold.我想知道的是如何创建一个名为prior_3_avg的新专栏,顾名思义,在过go 三个星期的同一天里,平均是soldunit.例如,对于2020年5月5日的单元"1",它在4月28日、21日和14日的平均销量是多少,这是最后三个周四?

玩具样本数据:

df = pd.DataFrame({'dt':['2020-5-1','2020-5-2','2020-5-3','2020-5-4','2020-5-5','2020-5-6','2020-5-7','2020-5-8','2020-5-9','2020-5-10','2020-5-11','2020-5-12','2020-5-13','2020-5-14','2020-5-15','2020-5-16','2020-5-17','2020-5-18','2020-5-19','2020-5-20','2020-5-21','2020-5-22','2020-5-23','2020-5-24','2020-5-25','2020-5-26','2020-5-27','2020-5-28','2020-5-1','2020-5-2','2020-5-3','2020-5-4','2020-5-5','2020-5-6','2020-5-7','2020-5-8','2020-5-9','2020-5-10','2020-5-11','2020-5-12','2020-5-13','2020-5-14','2020-5-15','2020-5-16','2020-5-17','2020-5-18','2020-5-19','2020-5-20','2020-5-21','2020-5-22','2020-5-23','2020-5-24','2020-5-25','2020-5-26','2020-5-27','2020-5-28',],'unit':[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2],'sold':[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28]})

df['dt'] = pd.to_datetime(df['dt'])

           dt  unit  sold 
0  2020-05-01     1     1
1  2020-05-02     1     2
2  2020-05-03     1     3
3  2020-05-04     1     4
4  2020-05-05     1     5
5  2020-05-06     1     6
...

我该怎么办?我看到:

这就解释了如何在列上进行分组.我想我可以做一个"一周中的某一天"专栏,但我仍然有一个相同的问题,那就是我想限制到过go 3个匹配的一周中的某一天的值,而不是所有的结果.

这可能与此有关,但这看起来更像是用于一次性分析,而不是制作一个新专栏:limit amount of rows as result of groupby Pandas

推荐答案

这应该是有效的:

df['dayofweek'] = df['dt'].dt.dayofweek
df['output'] = df.apply(lambda x: df['sold'][(df.index < x.name) & (df.dayofweek == x.dayofweek)].tail(3).sum(), axis = 1)

Python相关问答推荐

这家einsum运营在做什么?E = NP.einsum(aj,kl-il,A,B)

Python主进程和分支进程如何共享gc信息?

DuckDB将蜂巢分区插入拼花文件

如何在Python中使用时区夏令时获取任何给定本地时间的纪元值?

通过优化空间在Python中的饼图中添加标签

rame中不兼容的d类型

使用索引列表列表对列进行切片并获取行方向的向量长度

可变参数数量的重载类型(args或kwargs)

使可滚动框架在tkinter环境中看起来自然

Python,Fitting into a System of Equations

ODE集成中如何终止solve_ivp的无限运行

Pandas—在数据透视表中占总数的百分比

为一个组的每个子组绘制,

提取相关行的最快方法—pandas

使用Python查找、替换和调整PDF中的图像'

如何在Python Pandas中填充外部连接后的列中填充DDL值

使用tqdm的进度条

Tensorflow tokenizer问题.num_words到底做了什么?

如何在GEKKO中使用复共轭物

SpaCy:Regex模式在基于规则的匹配器中不起作用