重新采样 pandas 数据框并用零填充新行

resampling a pandas dataframe and filling new rows with zero

我有一个时间序列作为数据框。第一列是周数,第二列是该周的值。第一周 (22) 和最后一周 (48) 是时间序列的下限和上限。有些周丢失了,例如,没有第 27 周和第 28 周。我想重新采样这个系列,这样就没有丢失的周。在插入一周的地方,我希望相应的值为零。这是我的数据:

week    value
0   22  1
1   23  2
2   24  2
3   25  3
4   26  2
5   29  3
6   30  3
7   31  3
8   32  7
9   33  4
10  34  5
11  35  4
12  36  2
13  37  3
14  38  10
15  39  5
16  40  7
17  41  10
18  42  11
19  43  15
20  44  9
21  45  13
22  46  5
23  47  6
24  48  2

我想知道这是否可以在 Pandas 中实现而无需从头开始创建循环。我调查了 pd.resample,但无法获得我想要的结果。

我会将 week 设置为索引,使用 fill_value 选项重新索引:

start, end = df['week'].agg(['min','max'])

df.set_index('week').reindex(np.arange(start, end+1), fill_value=0).reset_index()

输出(头):

    week  value
0     22      1
1     23      2
2     24      2
3     25      3
4     26      2
5     27      0
6     28      0
7     29      3
8     30      3