pandas 按特定日期重新采样
pandas resample by a specific date
我尝试将每周数据重新采样为 4W,但起始周是任意的,但是,基本选项不起作用。
例如:
index = pd.date_range('1/1/2020', periods=14, freq='W')
series = pd.Series(range(14), index=index)
print(series)
2020-01-05 0
2020-01-12 1
2020-01-19 2
2020-01-26 3
2020-02-02 4
2020-02-09 5
2020-02-16 6
2020-02-23 7
2020-03-01 8
2020-03-08 9
2020-03-15 10
2020-03-22 11
2020-03-29 12
2020-04-05 13
默认 4W 垃圾桶 pandas:
print(series.resample('4W', label='left').sum())
2019-12-08 0
2020-01-05 10
2020-02-02 26
2020-03-01 42
2020-03-29 13
Freq: 4W-SUN, dtype: int64
我需要的是从1/19到2/9这4周的总和,而不是上面pandas默认的bin
您必须将系列移动 2 个位置。如果第一个累积值无关紧要,您可以删除前两点:
print(series.iloc[2:].resample('4W', label='left').sum())
得到:
2019-12-22 2
2020-01-19 18
2020-02-16 34
2020-03-15 36
Freq: 4W-SUN, dtype: int64
但是由于第一行不见了,所以第一个总和是错误的。正确的做法是在series前加2行,求和,舍弃第一行:
print(series.append(pd.Series(0, index=pd.date_range(end = series.index[0], periods=3, freq='W')[:2])
).sort_index().resample('4W', label='left').sum()[1:])
您现在在每一行中获得正确的值:
2019-12-22 3
2020-01-19 18
2020-02-16 34
2020-03-15 36
Freq: 4W-SUN, dtype: int64
我尝试将每周数据重新采样为 4W,但起始周是任意的,但是,基本选项不起作用。 例如:
index = pd.date_range('1/1/2020', periods=14, freq='W')
series = pd.Series(range(14), index=index)
print(series)
2020-01-05 0
2020-01-12 1
2020-01-19 2
2020-01-26 3
2020-02-02 4
2020-02-09 5
2020-02-16 6
2020-02-23 7
2020-03-01 8
2020-03-08 9
2020-03-15 10
2020-03-22 11
2020-03-29 12
2020-04-05 13
默认 4W 垃圾桶 pandas:
print(series.resample('4W', label='left').sum())
2019-12-08 0
2020-01-05 10
2020-02-02 26
2020-03-01 42
2020-03-29 13
Freq: 4W-SUN, dtype: int64
我需要的是从1/19到2/9这4周的总和,而不是上面pandas默认的bin
您必须将系列移动 2 个位置。如果第一个累积值无关紧要,您可以删除前两点:
print(series.iloc[2:].resample('4W', label='left').sum())
得到:
2019-12-22 2
2020-01-19 18
2020-02-16 34
2020-03-15 36
Freq: 4W-SUN, dtype: int64
但是由于第一行不见了,所以第一个总和是错误的。正确的做法是在series前加2行,求和,舍弃第一行:
print(series.append(pd.Series(0, index=pd.date_range(end = series.index[0], periods=3, freq='W')[:2])
).sort_index().resample('4W', label='left').sum()[1:])
您现在在每一行中获得正确的值:
2019-12-22 3
2020-01-19 18
2020-02-16 34
2020-03-15 36
Freq: 4W-SUN, dtype: int64