如何使用Pandas找到30分钟平均流量,然后找到最大30分钟平均流量每天?

2024-04-20 04:46:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我有每天每分钟的流量数据。我想计算每天每30分钟的平均流量。然后我想找出每天30分钟的最大平均流量。一旦我有了最大30分钟平均流量每天我想保存到一个excel表显示最大平均流量每天他们。你知道吗

import pandas as pd
import numpy as np
peakflow= pd.read_csv('P:\Waste Water\Totalizer Data\Main DAF\July_1_17_July_20_17.xls.csv')
peakflow['DateTime'] = pd.to_datetime(peakflow.DateTime)

以下是我的数据帧示例,名为peakflow:

                     DateTime   Gallons
     0                     NaT  Average 
     1                     NaT      gpm 
     2     2017-07-01 00:00:00       743
     3     2017-07-01 00:01:00      1273
     4     2017-07-01 00:02:00      1256
     5     2017-07-01 00:03:00       723
     6     2017-07-01 00:04:00         0
     7     2017-07-01 00:05:00         0
     8     2017-07-01 00:06:00         0
     9     2017-07-01 00:07:00       455
     10    2017-07-01 00:08:00      1279
     11    2017-07-01 00:09:00      1258
     12    2017-07-01 00:10:00      1052
     13    2017-07-01 00:11:00         0
     14    2017-07-01 00:12:00         0
     15    2017-07-01 00:13:00         0
     16    2017-07-01 00:14:00       919
     17    2017-07-01 00:15:00      1271
     18    2017-07-01 00:16:00      1244
     19    2017-07-01 00:17:00       343
     20    2017-07-01 00:18:00         0
     21    2017-07-01 00:19:00         0
     22    2017-07-01 00:20:00         0
     23    2017-07-01 00:21:00      1248
     24    2017-07-01 00:22:00      1258
     25    2017-07-01 00:23:00       836
     26    2017-07-01 00:24:00         0
     27    2017-07-01 00:25:00         0
     28    2017-07-01 00:26:00       451
     29    2017-07-01 00:27:00      1284

我尝试使用以下代码:

 df2 = peakflow.resample(rule = '30Min').mean()

对数据帧峰值流重新采样,每30分钟取一次平均值,然后将其保存到名为df2的新数据帧中,我将在其中使用以下代码:

 df3 = df2.resample(rule = '1D').max()

每天对df2进行重采样并找到dayle max valvues,然后将其保存到df3。你知道吗

但是,我的代码无法创建df2,出现以下错误:

TypeError: Only valid with DatetimeIndex, TimedeltaIndex or PeriodIndex, 
but got an instance of 'RangeIndex'

你们对这个应用程序有什么想法吗?或者这个代码出了什么问题?任何帮助都将不胜感激。你知道吗

谢谢。你知道吗


Tags: csv数据代码importdatetimeasrulenat
1条回答
网友
1楼 · 发布于 2024-04-20 04:46:55

尝试重新采样的数据帧必须具有日期时间索引。你知道吗

peakflow.set_index('DateTime', inplace=True)  
peakflow.index = pd.to_datetime(peakflow.index)    
peakflow.resample(rule = '30Min').mean()
#               Gallons
#DateTime              
#2017-07-01  603.321429
df3 = df2.resample(rule = '1D').max()    
#               Gallons
#DateTime              
#2017-07-01  603.321429

相关问题 更多 >