python - 如何在执行 groupby 函数时获取列的值
问题描述
嗨,我有一个日期时间和期间高低的数据框。例如。它的 5 分钟数据称之为 df
约会时间 | 高的 | 低的 | |
---|---|---|---|
0 | 2020-12-02 09:15:00 | 590.349976 | 584.299988 |
1 | 2020-12-02 09:20:00 | 593.900024 | 588.750000 |
2 | 2020-12-02 09:25:00 | 594.900024 | 592.450012 |
3 | 2020-12-02 09:30:00 | 593.849976 | 591.799988 |
4 | 2020-12-02 09:35:00 | 594.400024 | 592.200012 |
5 | 2020-12-02 09:40:00 | 596.250000 | 593.099976 |
6 | 2020-12-02 09:45:00 | 596.849976 | 593.102476 |
7 | 2020-12-02 09:50:00 | 595.400024 | 592.950012 |
8 | 2020-12-02 09:55:00 | 596.500000 | 594.500000 |
我执行 groupby 函数将 5 分钟转换为 15 分钟并获得以下输出。
约会时间 | 高的 | 低的 | |
---|---|---|---|
0 | 2020-12-02 09:15:00 | 594.900024 | 584.299988 |
1 | 2020-12-02 09:30:00 | 596.250000 | 591.799988 |
2 | 2020-12-02 09:45:00 | 596.849976 | 592.950012 |
在执行 groupby 函数时是否有可能在以下所需输出中获得准确的高低日期时间。
约会时间 | 高的 | 低的 | 高日期时间 | 低日期时间 | |
---|---|---|---|---|---|
0 | 2020-12-02 09:15:00 | 594.900024 | 584.299988 | 2020-12-02 09:25:00 | 2020-12-02 09:15:00 |
1 | 2020-12-02 09:30:00 | 596.250000 | 591.799988 | 2020-12-02 09:40:00 | 2020-12-02 09:30:00 |
2 | 2020-12-02 09:45:00 | 596.849976 | 592.950012 | 2020-12-02 09:45:00 | 2020-12-02 09:50:00 |
解决方案
您可以使用包含聚合函数的字典的频率和聚合group
数据帧:pd.Grouper
15min
d = {'High': ('High', 'max'), 'Low': ('Low', 'min'),
'High date': ('High', 'idxmax'), 'Low date': ('Low', 'idxmin')}
df.set_index('Datetime').groupby(pd.Grouper(freq='15min')).agg(**d)
High Low High date Low date
Datetime
2020-12-02 09:15:00 594.900024 584.299988 2020-12-02 09:25:00 2020-12-02 09:15:00
2020-12-02 09:30:00 596.250000 591.799988 2020-12-02 09:40:00 2020-12-02 09:30:00
2020-12-02 09:45:00 596.849976 592.950012 2020-12-02 09:45:00 2020-12-02 09:50:00
推荐阅读
- jquery - 从 jquery 的函数生成 pdf 并希望将其保存在我的服务器上
- domain-driven-design - DDD 修改每个事务的一个聚合,两个聚合中的不变量
- php - 如何使用在 docker composer 中设置的环境变量
- javascript - lodash合并一个对象
- css - @media 查询在 iPhone 上不起作用
- openlayers - 使用画布图案设计几何体的笔触
- python - 识别产品组合列表结果中每个元素的原始键
- django - 如何让 Django 在 UTC 中存储日期时间,但在管理员中以当地时间显示?
- javascript - 如何根据 Google Cloud Functions 上初始路径的参考值将节点克隆到另一个路径?
- regex - 正则表达式查找包含字符串的所有文本