首页 > 解决方案 > Pandas Resample 可以用于不同的日期范围吗?

问题描述

嗨,我有一个关于 Pandas 重采样的问题。

在我的数据中,我的日期范围从 2018 年 12 月 31 日到 2019 年 3 月 25 日,间隔为 7 天(例如 31/12/2018、7/1/2019、14、2019 等),我想将与这些日期对应的销售重新采样到新的日期范围,例如 30/4/2020 到 24/9/2020,之前使用的间隔为 7 天。有没有办法使用熊猫重采样功能来做到这一点?如图所示,我想从左侧的数据框中重新采样销售额并填充右侧的数据框。需要说明的是:左侧数据框由 13 行组成,右侧数据框由 22 行组成。

在此处输入图像描述

标签: pythonpandastime-seriesresampling

解决方案


可以从旧值创建新数据框,由于长度不同,因此需要“索引”。如果您愿意,也可以应用 df2.fillna(0)。

df2= pd.DataFrame( {"date": pd.date_range("2020-04-30",freq="7D",periods=22), "sales":df1.sales},index=np.arange(22) )

或不使用“索引”:

df2= pd.DataFrame( {"date": pd.date_range("2020-04-30",freq="7D",periods=22), "sales": np.concatenate([df1.sales.values,np.zeros(9)])}) 

推荐阅读