将值为0的周数添加到包含未捕获数据的周数的时间序列数据的数据帧中

2024-09-30 01:32:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我有几个星期的事务数据。然而,我不能保证每周都有数据。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-05周和2019-10-12周,X=0,以便数据帧反映到今天为止的周数。在某些情况下,我需要添加几个星期的零,因此我正在寻找一个有效的解决方案。有人知道这样做的好方法吗


Tags: to数据代码数量datetimebytimegroup
1条回答
网友
1楼 · 发布于 2024-09-30 01:32:50

您可以使用pd.date_range重新索引输出

在:

df.reindex(
    pd.date_range(start=df.index.min(),
                  end=pd.to_datetime('today') + pd.offsets.Week(),
                  freq='W-SAT')).fillna(0)

输出:

|            | X   |
|      |  -|
| 2019-09-14 | 3.0 |
| 2019-09-21 | 0.0 |
| 2019-09-28 | 1.5 |
| 2019-10-05 | 0.0 |
| 2019-10-12 | 0.0 |

相关问题 更多 >

    热门问题