如何聚合特定范围内的 pandas datetimeindex 值?
我有以下问题。给定的是这个 pandas DataFrame
df = pd.DataFrame({
'Dates': pd.to_datetime(['2022-04-15','2022-05-15','2022-06-15','2022-07-15',
'2022-08-15','2022-09-15','2023-10-15']),
'Values': [100,150,200,150,100,250,100]
})
Dates Values
0 2022-04-15 100
1 2022-05-15 150
2 2022-06-15 200
3 2022-07-15 150
4 2022-08-15 100
5 2022-09-15 250
6 2023-10-15 100
现在我不想将 df['Values'] 累积到这个特定的日期范围
daterange1 = pd.date_range('2022-03-31','2022-04-30', freq='M')
daterange2 = pd.date_range(daterange1[-1],'2022-11-30', freq='3M')
daterange = daterange1.union(daterange2)
DatetimeIndex(['2022-03-31', '2022-04-30', '2022-07-31', '2022-10-31'], dtype='datetime64[ns]', freq=None)
分组看起来像这样:
Dates Values
----------------------- 2022-03-31 Sum=0
0 2022-04-15 100
----------------------- 2022-04-30 Sum=100
1 2022-05-15 150
2 2022-06-15 200
3 2022-07-15 150
----------------------- 2022-07-31 Sum=500
4 2022-08-15 100
5 2022-09-15 250
6 2023-10-15 100
----------------------- 2022-10-31 Sum=450
这应该是结果:
Dates Values
0 2022-03-31 0
1 2022-04-30 100
2 2022-07-31 500
3 2022-10-31 450
有没有办法将它们分组按照这个模式?
提前致谢 :)
I have the following problem. Given is this pandas DataFrame
df = pd.DataFrame({
'Dates': pd.to_datetime(['2022-04-15','2022-05-15','2022-06-15','2022-07-15',
'2022-08-15','2022-09-15','2023-10-15']),
'Values': [100,150,200,150,100,250,100]
})
Dates Values
0 2022-04-15 100
1 2022-05-15 150
2 2022-06-15 200
3 2022-07-15 150
4 2022-08-15 100
5 2022-09-15 250
6 2023-10-15 100
Now I wan't to accumulate df['Values']
into this specific date range
daterange1 = pd.date_range('2022-03-31','2022-04-30', freq='M')
daterange2 = pd.date_range(daterange1[-1],'2022-11-30', freq='3M')
daterange = daterange1.union(daterange2)
DatetimeIndex(['2022-03-31', '2022-04-30', '2022-07-31', '2022-10-31'], dtype='datetime64[ns]', freq=None)
A grouping would look like this:
Dates Values
----------------------- 2022-03-31 Sum=0
0 2022-04-15 100
----------------------- 2022-04-30 Sum=100
1 2022-05-15 150
2 2022-06-15 200
3 2022-07-15 150
----------------------- 2022-07-31 Sum=500
4 2022-08-15 100
5 2022-09-15 250
6 2023-10-15 100
----------------------- 2022-10-31 Sum=450
This should be the result:
Dates Values
0 2022-03-31 0
1 2022-04-30 100
2 2022-07-31 500
3 2022-10-31 450
Is there a way to group them according to this pattern?
Thanks in advance :)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以使用
剪切
检查You can check with
cut