Pandas 每月重新抽样维护第一个日期

Pandas monthly resample maintaining first date

将时间序列重新采样为月度序列时,pandas 将我的时间序列的初始日期更改为月初。来自:

2020-01-12    0.730439  
2020-01-13    0.559328    
                ...    
2021-06-29    0.188461  
2021-06-30    0.750668

收件人:

2020-01-01     8.613978
2020-02-01    14.614601
   ...              ...
2021-05-01    11.936765
2021-06-01    13.758198

而不是期望的结果,在第一个月的日期是我的时间序列的第一个日期:

2020-01-12     8.613978
2020-02-01    14.614601
   ...              ...
2021-05-01    11.936765
2021-06-01    13.758198

有没有办法在不丢失初始日期的情况下执行每月重新采样?

目前我确实事后更正了它。我在问是否有办法即时进行。我已经尝试了所有 resample 的参数,但没有达到预期的结果。我看了一下 pd.Grouper 但也没有成功。

谢谢, 贡苏

PS:复制问题的小脚本。

import pandas as pd
from numpy.random import random

index = pd.date_range('20200112', '20210630')
df = pd.Series(random(len(index)), index=index)

df.resample('MS').sum()

您可以进行手动更新:

s = df.resample('MS').sum()

s.index = [df.index.min()] + list(s.index[1:])

输出:

2020-01-12     7.345615
2020-02-01    15.873136
2020-03-01    14.083565
2020-04-01    17.547765
2020-05-01    15.321236
2020-06-01    11.787999
2020-07-01    16.619211
2020-08-01    17.292133
2020-09-01    16.866571
2020-10-01    17.772687
2020-11-01    13.371602
2020-12-01    17.037126
2021-01-01    15.907105
2021-02-01    13.887159
2021-03-01    13.660123
2021-04-01    16.534306
2021-05-01    15.055836
2021-06-01    15.818617
dtype: float64

试试这个: df= df.close.resample('M').sum()

或者,您可以在代码中将 'MS' 更改为 'M'。