【发布时间】:2020-02-07 06:56:01
【问题描述】:
我有按周分组的交易数据。但是,我不能保证每周都有数据。 Group by 在第一周和最后一周之间以 0 数量填充缺失的周方面做得很好。但是,我需要用截至本周的值填充我的数据框。
我的数据存储在日期框架 dfShipsInScope 中,我已使用以下代码将我的数据转换为每周一次:
dfShipsInScope['START_TIME'] = pd.to_datetime(dfShipsInScope['START_TIME'])
dfShipsInScope=dfShipsInScope[['START_TIME','X']].groupby('START_TIME').sum()
dfShipsInScope=dfShipsInScope.resample(rule = 'W-SAT').sum()
dfShipsInScope.index.freq='W-SAT'
这会输出如下内容:
X
START_TIME
2019-09-14 3.000
2019-09-21 0.000
2019-09-28 1.500
我需要添加 2019 年 10 月 5 日和 2019 年 10 月 12 日的周,其中 X=0,以便数据框反映到今天为止的周数。在某些情况下,我需要添加几个星期的零,所以我正在寻找一个有效的解决方案。有人知道这样做的好方法吗?
【问题讨论】:
-
仅仅两周时间有什么押韵或理由吗?
-
我在很多不同的数据集上运行它。在此特定示例中,最后一个日期点是两周前。在其他情况下,肯定会有所不同。
标签: python pandas dataframe time-series pandas-groupby