[英]How to calculate day max for time series along with relevant hour?
我有一个 dataframe 里面有一些时间序列。 它有 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()
它有效,但显然在分组后我们删除了小时信息。 问题是:我如何构建 dataFrame 它将包含天最大值以及观察到该值的小时,即
天 | 观察到 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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.