我一直在尝试弄清楚如何执行以下操作,但没有成功。我尝试了抽样、分组……卡住了。
我有以下 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') 并做一个我可以自己做的连接。
你能帮忙解决上面的问题吗?
最佳答案
使用 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
关于python - 使用 GroupBy 从长格式到宽格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52242418/