我每天都有每分钟的流量数据。我想每天获取每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最大阀值,然后将其保存到df3。
但是我的代码无法创建df2,并且出现以下错误:
TypeError: Only valid with DatetimeIndex, TimedeltaIndex or PeriodIndex,
but got an instance of 'RangeIndex'
你们是否对适用于该应用程序或此代码出了什么问题有任何想法?任何帮助将不胜感激。
谢谢。
答案 0 :(得分:0)
您尝试重新采样的数据帧必须具有DateTime索引。
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