重新采样 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
我有一个时间序列作为数据框。第一列是周数,第二列是该周的值。第一周 (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