我希望按照我在标题中所述的方法进行操作,即首先从每年中提取4个月,然后对每年前4个月的值求和。
我的尝试:
a = pd.DataFrame({'ds': [d for d in pd.date_range(start='2018-01-01', end='2020-05-30')],
'value': [1 for v in range(881)]})
a.resample('Y', on='ds', loffset='4M').sum()
我当前的输出:
value
ds
2019-04-30 365
2020-04-30 365
2021-04-30 151
我的预期输出:
value
ds
2018-04-30 120
2019-04-30 120
2020-04-30 121
您可以先筛选前4个飞蛾resample
通过boolean indexing
与Series.dt.month
和Series.lt
对less
像5
,也由开始2018
使用YS
了一年的开始:
df = a[a['ds'].dt.month.lt(5)].resample('YS', on='ds', loffset='4M').sum()
print (df)
value
ds
2018-04-30 120
2019-04-30 120
2020-04-30 121
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句