我完全被这个练习卡住了,不知道如何继续。
我有
形式的数据ID / From / To / Value
12 / 1.1.2021 7:50 / 1.1.2021 8:20 / 50
13 / 1.1.2021 8:00 / 1.1.2021 8:03 / 100
14 / 1.1.2021 9:12 / 1.1.2021 9:30 / 12
我需要将所有时间序列分成分钟,并找出每分钟的值之和,因此,我应该得到类似
的内容1.1.2021 7:59 50
1.1.2021 8:00 150
1.1.2021 8:01 150
....
1.1.2021 8:03 150
1.1.2021 8:04 50
...
1.1.2021 8:21 0
...
1.1.2021 9:12 12
我不知道如何开始。
你能帮帮我吗?
谢谢。
zuzana
我想可能是这样使用apply
和pd_date_range
df_new = (df.set_index(['ID','Value'])
.apply(lambda x: pd.date_range(x['From'], x['To'],freq='min'), axis=1)
.explode().rename('date').reset_index().groupby('date')['Value'].sum())
date
2021-01-01 07:50:00 50
2021-01-01 07:51:00 50
2021-01-01 07:52:00 50
2021-01-01 07:53:00 50
2021-01-01 07:54:00 50
2021-01-01 07:55:00 50
2021-01-01 07:56:00 50
2021-01-01 07:57:00 50
2021-01-01 07:58:00 50
2021-01-01 07:59:00 50
2021-01-01 08:00:00 150
2021-01-01 08:01:00 150
....