python - 使用 GroupBy 从长格式到宽格式

标签 python pandas datetime group-by pandas-groupby

我一直在尝试弄清楚如何执行以下操作,但没有成功。我尝试了抽样、分组……卡住了。

我有以下 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/

相关文章:

php - 使用php将日期时间保存到mysql

python - 将 .pyc 文件反编译为 Python 3.2 的脚本

python - 如何将正则表达式从 perl 转换为 python

Android将日期和时间转换为毫秒

python - 连接 pandas 数据框中的元组列表

python - 归一化二元概率密度函数 - python

ruby - 如何解决 `DateTime.parse "Feb. 2 9"` 崩溃?

python - 如何遍历一个字符串并转换成字典

python - 使用客户端和服务器部分构建 Python 应用程序

python - 将文件加载到没有列标题的 pandas DataFrame 不起作用