我有以下問題。給定的是這個熊貓資料框
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
有沒有辦法根據這種模式對它們進行分組?
提前致謝 :)
uj5u.com熱心網友回復:
你可以檢查cut
out = df.groupby(pd.cut(df.Dates,daterange.union([pd.to_datetime('2022-02-28')]),labels = daterange)).sum() #.reset_index()
Out[376]:
Values
Dates
2022-03-31 00:00:00 0
2022-04-30 00:00:00 100
2022-07-31 00:00:00 500
2022-10-31 00:00:00 350
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/452699.html
