我有一个时间序列作为数据框。第一列是周数,第二列是该周的值。第一周 (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
关于python-3.x - 重新采样 pandas 数据框并用零填充新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70261880/