python - 如何计算时间序列的最大天数以及相关小时数?
问题描述
我有一个数据框,里面有一些时间序列。它有 3 列:日、小时和值:
天 | 小时 | 价值 |
---|---|---|
1月12日 | 11-00 | 14 |
1月12日 | 12-00 | 100 |
1月12日 | 13-00 | 345 |
1月12日 | 14-00 | 195 |
1月13日 | 12-00 | 76 |
1月13日 | 13-00 | 221 |
1月13日 | 14-00 | 102 |
1月13日 | 15-00 | 395 |
如您所见,在 13-00 观察到 1 月 12 日的最大值。
我想计算每个“天”的“价值”的最大值。我可以通过简单的方式做到这一点
df.groupby("day")["value"].max()
它有效,但显然在分组后我们删除了小时信息。问题是:我如何构建包含日期最大值以及观察到该值的小时的数据帧,即
天 | 观察到 maxValue 的小时 | 最大值 |
---|---|---|
1月12日 | 13-00 | 345 |
1月13日 | 15-00 | 395 |
?
解决方案
编辑
我创建了您的示例df
:
day hour value
0 2021-01-12 11-00 14
1 2021-01-12 12-00 100
2 2021-01-12 13-00 345
3 2021-01-12 14-00 195
4 2021-01-13 12-00 76
5 2021-01-13 13-00 221
6 2021-01-13 14-00 102
7 2021-01-13 15-00 395
并在其上运行此代码:
res = pd.merge(df.groupby('day').agg({'value':'max'},as_index=False).add_prefix('max_'),df,how='left',left_on='max_value',right_on='value')
回来了:
max_value day hour value
0 345 2021-01-12 13-00 345
1 395 2021-01-13 15-00 395
推荐阅读
- ios - 通过 PHPickerViewController 推送视图控制器
- php - 从核心数据属性中读取日期
- c++ - 如何获得 std::bind 函数签名?
- android - 使用 AWS Lambda 连接 Android 和 AWS SageMaker
- node.js - 在 nodeJs 退出代码 1 中生成 mongodump 集群
- php - 联系表格提交失败?
- javascript - Javascript 以编程方式更改列表项的图像 url 属性
- wordpress - 需要在 WordPress 代码中删除 Foreach 循环中的重复帖子
- batch-file - 将变量名存储在批处理文件的变量中
- javascript - Angular 2+:路由器更改路由/路由器插座无法识别并显示旧组件