我正在尝试重新采样到月值,但相对于第15天我检查了timeseries偏移文档,但只有M月末频率SM半月末频率(15日和月末)MS月初频率SMS半月初频率(1日和15日)而我只需要15天就像
2000-01-15 8.7 2000-02-15 6.9 2000-03-15 15.8 2000-04-15 12.4
我尝试了pd.offsets.MonthBegin和MonthOffset,但没有结果
cgvd09ve1#
按月份开始MS进行聚合,然后按loffset参数调整重新采样的时间标签:
MS
loffset
df1 = df.resample('MS', loffset=pd.Timedelta(14, 'd')).sum()
样品:
rng = pd.date_range('2017-04-03', periods=15, freq='5D') df = pd.DataFrame({'a': range(15)}, index=rng) print (df) a 2017-04-03 0 2017-04-08 1 2017-04-13 2 2017-04-18 3 2017-04-23 4 2017-04-28 5 2017-05-03 6 2017-05-08 7 2017-05-13 8 2017-05-18 9 2017-05-23 10 2017-05-28 11 2017-06-02 12 2017-06-07 13 2017-06-12 14 df1 = df.resample('MS', loffset=pd.Timedelta(14, 'd')).sum() print (df1) a 2017-04-15 15 2017-05-15 51 2017-06-15 39 df1 = df.resample('SMS').sum() print (df1) a 2017-04-01 3 2017-04-15 12 2017-05-01 21 2017-05-15 30 2017-06-01 39
pdtvr36n2#
另一个答案在pandas 1.4.2中不推荐使用,并带有警告FutureWarning: 'loffset' in .resample() and in Grouper() is deprecated.推荐的替代方法是首先正常重采样,然后将Timedelta添加到索引:
1.4.2
FutureWarning: 'loffset' in .resample() and in Grouper() is deprecated.
Timedelta
df1 = df.resample('MS').sum() df1.index += pd.Timedelta(14, 'd')
axzmvihb3#
对于python 3.11和Pandas 2.0.2,下面的工作是在月中时间重新采样。
from datetime import datetime times = ['2022-06-15 00:12:23', '2022-06-18', '2022-07-03', '2022-07-18'] data = [10, 100, 1000, 10000] df = pd.DataFrame(data, index=pd.to_datetime(times), columns=['test']) period = '1M' start = pd.Timestamp(year=2022, month=5, day=15) offset = pd.Timedelta(days=start.day - 1, hours=start.hour, minutes=start.minute, seconds=start.second, microseconds=start.microsecond) df.index = df.index - offset rs = df.resample(period).sum() rs.index = rs.index + offset + pd.Timedelta(days=1) rs
给了我:
test 2022-07-15 1110 2022-08-15 10000
3条答案
按热度按时间cgvd09ve1#
按月份开始
MS
进行聚合,然后按loffset
参数调整重新采样的时间标签:样品:
pdtvr36n2#
另一个答案在pandas
1.4.2
中不推荐使用,并带有警告FutureWarning: 'loffset' in .resample() and in Grouper() is deprecated.
推荐的替代方法是首先正常重采样,然后将
Timedelta
添加到索引:axzmvihb3#
对于python 3.11和Pandas 2.0.2,下面的工作是在月中时间重新采样。
给了我: