我一直在试图弄清楚如何做以下事情,但没有成功。我试过抽样,分组...卡住了。
我有下面的pandas数据帧示例:
date | price |
09/09/2018 08:30 | 22.1 |
09/09/2018 08:35 | 22.12 |
09/09/2018 08:40 | 22.20 |
09/09/2018 08:45 | 22.13 |
09/09/2018 08:50 | 22.19 |
09/09/2018 08:55 | 22.39 |
我希望在15分钟内对日期进行分组,并获取以下数据帧。
date_15 | price_1 | price_2 | price 3 |
09/09/2018 08:30 | 22.1 | 22.12 | 22.20 |
09/09/2018 08:45 | 22.13 | 22.19 | 22.39 |
然后我会使用set_index('date_15')并做一个join,我可以自己做。
你能帮我解决上面的问题吗?
发布于 2018-09-09 07:49:20
使用pd.Grouper
每隔15分钟对日期执行一次groupby
,然后使用结果创建一个新的DataFrame:
df['date'] = pd.to_datetime(df.date, errors='coerce')
v = df.groupby(pd.Grouper(key='date', freq='15min'))['price'].apply(list)
pd.DataFrame(v.tolist(), index=v.index).add_prefix('price ')
price 0 price 1 price 2
date
2018-09-09 08:30:00 22.10 22.12 22.20
2018-09-09 08:45:00 22.13 22.19 22.39
https://stackoverflow.com/questions/52242418
复制