累计记录的每日和每小时功耗不匹配



我计算了一个电能表的每小时和每天的数据,累计记录的能耗如下:

<表类> 设备 时间 千瓦时 tbody><<tr>计12022年5月12日21:05:00900计12022年5月12日21:20:00930计12022年5月12日21:55:00950计12022年5月12日22:05:001000计12022年5月12日22:55:001050计12022年5月13日00:05:001200

想法是将DeviceGrouper的小时/天与GroupBy.firstGroupBy.last相加,得到Device的差值,并将第一个值减去最后一个值和第一个值:

df['Time'] = pd.to_datetime(df['Time'])
df1 = df.groupby(['Device', pd.Grouper(freq='H', key='Time')])['kWH'].agg(['first','last'])
df1 = df1.groupby(level=0)['last'].diff().fillna(df1['last'].sub(df1['first'])).reset_index(name='hour diff')
print (df1)
Device                Time  hour diff
0  Meter 1 2022-05-12 21:00:00       50.0
1  Meter 1 2022-05-12 22:00:00      100.0
2  Meter 1 2022-05-13 00:00:00      150.0
df2 = df.groupby(['Device', pd.Grouper(freq='D', key='Time')])['kWH'].agg(['first','last'])
df2 = df2.groupby(level=0)['last'].diff().fillna(df2['last'].sub(df2['first'])).reset_index(name='day diff')
print (df2)
Device       Time   day diff
0  Meter 1 2022-05-12      150.0
1  Meter 1 2022-05-13      150.0

最新更新