繁体   English   中英

如何计算时间序列的最大天数以及相关小时数?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM