我有一个Pandas DF,它是用groupby(df['date'].dt.to_period('W-SAT')).agg({'price': 'mean'})创建的.现在,我想扩展该表,以便每个日期都有一个包含该周平均值的行.我该怎么做呢?下面是一个例子

date                    avg_price
2020-02-09/2020-02-15   6.438312    
2020-02-16/2020-02-22   3.477643    
2020-02-23/2020-02-29   8.784417    
2020-03-01/2020-03-07   12.897191   

我希望它看起来像是

date                    avg_price
2020-02-09              6.438312    
2020-02-10              6.438312    
2020-02-11              6.438312    
2020-02-12              6.438312

谢谢!

推荐答案

首先,获取date的时间戳表示:

df['date'] =  df.date.dt.to_timestamp('D')

它将返回:

        date    avg_price
0   2020-02-09  6.438312
1   2020-02-16  3.477643
2   2020-02-23  8.784417
3   2020-03-01  12.897191

然后设置date为索引,使用asfreq作为日常频率,并向前填充空值:

df.set_index('date').asfreq('D').ffill().reset_index()

你有:

        date    avg_price
0   2020-02-09  6.438312
1   2020-02-10  6.438312
2   2020-02-11  6.438312
3   2020-02-12  6.438312
4   2020-02-13  6.438312
5   2020-02-14  6.438312
6   2020-02-15  6.438312
7   2020-02-16  3.477643
8   2020-02-17  3.477643
9   2020-02-18  3.477643
10  2020-02-19  3.477643
11  2020-02-20  3.477643
12  2020-02-21  3.477643
13  2020-02-22  3.477643
14  2020-02-23  8.784417
15  2020-02-24  8.784417
16  2020-02-25  8.784417
17  2020-02-26  8.784417
18  2020-02-27  8.784417
19  2020-02-28  8.784417
20  2020-02-29  8.784417
21  2020-03-01  12.897191

Python相关问答推荐

Python-Polars:如何用两个值的平均值填充NA?

仅使用2种 colored颜色 创建热图

socket.gaierror:[Errno -2]名称或服务未知|Firebase x Raspberry Pi

按 struct 值对Polars列表[struct[]]排序

阅读Polars Python中管道的函数定义

如果索引不存在,pandas系列将通过索引获取值,并填充值

配置Sweetviz以分析对象类型列,而无需转换

如何从具有多个嵌入选项卡的网页中Web抓取td类元素

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

使用Keras的线性回归参数估计

Pandas 第二小值有条件

根据在同一数据框中的查找向数据框添加值

比较2 PD.数组的令人惊讶的结果

无法定位元素错误404

如何在Python中找到线性依赖mod 2

调用decorator返回原始函数的输出

python panda ExcelWriter切换动态公式到数组公式

跳过嵌套JSON中的级别并转换为Pandas Rame

如何检测鼠标/键盘的空闲时间,而不是其他输入设备?

导入错误:无法导入名称';操作';