【问题标题】:Can Pandas Resample be used on a different set of date ranges?Pandas Resample 可以用于不同的日期范围吗?
【发布时间】:2020-04-22 13:46:48
【问题描述】:
您好,我有一个关于 Pandas 重采样的问题。
在我的数据中,我的日期范围从 2018 年 12 月 31 日到 2019 年 3 月 25 日,间隔为 7 天(例如 2018 年 12 月 31 日、2019 年 7 月 1 日、2019 年 14 月等),我想将与这些日期对应的销售重新采样到一个新的日期范围,例如 30/4/2020 到 24/9/2020,之前使用的间隔为 7 天。有没有办法使用熊猫重采样功能来做到这一点?如图所示,我想从左侧的数据框中重新采样销售额并填充右侧的数据框。
需要说明的是:左侧数据框由 13 行组成,右侧数据框由 22 行组成。
【问题讨论】:
标签:
python
pandas
time-series
resampling
【解决方案1】:
让我们试试这个:
df=pd.date_range(start='30/4/2020', end='24/9/2020')
【解决方案2】:
可以从旧值创建新数据框,由于长度不同,因此需要“索引”。如果您愿意,也可以应用 df2.fillna(0)。
df2= pd.DataFrame( {"date": pd.date_range("2020-04-30",freq="7D",periods=22), "sales":df1.sales},index=np.arange(22) )
或者不使用'index':
df2= pd.DataFrame( {"date": pd.date_range("2020-04-30",freq="7D",periods=22), "sales": np.concatenate([df1.sales.values,np.zeros(9)])})