从每小时数据中找到每天的最大值

编程入门 行业动态 更新时间:2024-10-11 23:22:59
本文介绍了从每小时数据中找到每天的最大值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我无法从每小时数据中获取每天的最大值.原始文件每天每个名称包含24个数据(名称过多).例如,这里有一个名字的24个数据:

I have problem getting max value of each day from hourly data. Original file contain 24 data for each name each day(there are too many name). as example here is 24 data for one name:

Start Time Period name value 2/23/2019 0:00 60 MBTS_H2145X 100 2/23/2019 1:00 60 MBTS_H2145X 100 2/23/2019 2:00 60 MBTS_H2145X 1 2/23/2019 3:00 60 MBTS_H2145X 1 2/23/2019 4:00 60 MBTS_H2145X 1 2/23/2019 5:00 60 MBTS_H2145X 2324 2/23/2019 6:00 60 MBTS_H2145X 2323 2/23/2019 7:00 60 MBTS_H2145X 2323 2/23/2019 8:00 60 MBTS_H2145X 2323 2/23/2019 9:00 60 MBTS_H2145X 2323 2/23/2019 10:00 60 MBTS_H2145X 2323 2/23/2019 11:00 60 MBTS_H2145X 2323 2/23/2019 12:00 60 MBTS_H2145X 1 2/23/2019 13:00 60 MBTS_H2145X 21 2/23/2019 14:00 60 MBTS_H2145X 21 2/23/2019 15:00 60 MBTS_H2145X 23 2/23/2019 16:00 60 MBTS_H2145X 350 2/23/2019 17:00 60 MBTS_H2145X 323 2/23/2019 18:00 60 MBTS_H2145X 23 2/23/2019 19:00 60 MBTS_H2145X 23 2/23/2019 20:00 60 MBTS_H2145X 2323 2/23/2019 21:00 60 MBTS_H2145X 23 2/23/2019 22:00 60 MBTS_H2145X 23 2/23/2019 23:00 60 MBTS_H2145X 2

我得到的结果是:(这是错误的,应该是2324)

the result I get is: (which is wrong and should be 2324)

Start Time name max value 0 2/23/2019 MBTS_H2145X 350

我有以下代码,但结果不正确

I have below codes but I get wrong result

import dask.dataframe as dd import numpy as np import pandas as pd filename='V.csv' df = dd.read_csv(filename, dtype='str') #_________changing date format df['Start Time'] = df['Start Time'].map(lambda x: pd.to_datetime(x, errors='coerce')) #_________change to pure date without hour df['Start Time'] = df['Start Time'].dt.date grouped_df=(df.groupby(['Start Time','name']).agg({'value':'max'}).rename(columns={'value':'max value'}).reset_index()) grouped_df.to_csv('e1.csv') print(grouped_df.head(12))

推荐答案

保持代码完全相同.只需将此行更改为:

Keep your code the exact same. Just Change this line to:

grouped_df=(df.groupby(['Start Time','name']).agg({'value':'max'}).rename(columns={'value':'max value'}).reset_index())

更改为:

df.value = pd.to_numeric(df.value) grouped_df= (df.groupby(['Start Time','name'])['value'].max().rename(columns={'value':'max value'}).reset_index() df = pd.merge(df, grouped_df, on = ['Start Time','name'])

聚合函数可能会发生某些事情.

There might be something happening with the aggregate function.

或者如果您的DTYPE仅是STRING,则只需添加pd.to_numeric行,并保持其他所有内容不变.

OR IF YOUR DTYPE IS JUST STRING, then just add the pd.to_numeric line, and keep everything else the same.

更多推荐

从每小时数据中找到每天的最大值

本文发布于:2023-10-18 17:28:23,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1504873.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:最大值   每小时   数据   中找到

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!