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