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

发布于 2025-01-28 07:35:43 字数 1332 浏览 0 评论 0原文

我是每小时计算的功率计的每日数据,具有累积的记录能源消耗如下:

设备时间kWh
仪表2022年5月12日21:05:00900 900
米112 2022 21:20:00930 930
米112 2022 21 :55:00950
米12022 22:05:001000
12022 22:55:001050
米113 5月13日2022 00:05:001200

我尝试按日期和日期进行分组。但是在此之后,数据看起来并不如下:

Hourly report:
Meter 1|12 May 2022 21:00:00    |50 (950-900)
Meter 1|12 May 2022 22:00:00    |50 (1050-100)
Meter 1|13 May 2022 00:00:00    |0 (only 1 data)

Daily report:
Meter 1|12 May 2022         |150 (1050-900)
Meter 1|13 May 2022         |0 (only 1 data)

- >在2022年5月12日,每小时和每天都不等于

因此我想找到一种按照以下数据计算的方法:

Hourly report:
Meter 1|12 May 2022 21:00:00    |50 (950-900)
Meter 1|12 May 2022 22:00:00    |100 (1050-950)
Meter 1|13 May 2022 00:00:00    |150 (1200-1050)

Daily report:
Meter 1|12 May 2022         |150 (1050-900)
Meter 1|13 May 2022         |150 (1200-1050)

我希望找到从新的小时数据/最后一个小时数据中解决问题不匹配的方法,新的一天数据/最后一天数据。

目前,我正在使用Python和Pandas。

I am calculate hourly and daily data for a power meter with accumulated record energy consumption as below:

DeviceTimekWH
Meter 112 May 2022 21:05:00900
Meter 112 May 2022 21:20:00930
Meter 112 May 2022 21:55:00950
Meter 112 May 2022 22:05:001000
Meter 112 May 2022 22:55:001050
Meter 113 May 2022 00:05:001200

I try to group by time of date, and date. But after that data look not make sense as below:

Hourly report:
Meter 1|12 May 2022 21:00:00    |50 (950-900)
Meter 1|12 May 2022 22:00:00    |50 (1050-100)
Meter 1|13 May 2022 00:00:00    |0 (only 1 data)

Daily report:
Meter 1|12 May 2022         |150 (1050-900)
Meter 1|13 May 2022         |0 (only 1 data)

-> Hourly and daily is not equal for day 12 May 2022

So I would like to find a method to calculate as expect data below:

Hourly report:
Meter 1|12 May 2022 21:00:00    |50 (950-900)
Meter 1|12 May 2022 22:00:00    |100 (1050-950)
Meter 1|13 May 2022 00:00:00    |150 (1200-1050)

Daily report:
Meter 1|12 May 2022         |150 (1050-900)
Meter 1|13 May 2022         |150 (1200-1050)

I hope to find out method to solve the issue mismatch from new hour data/last hour data, new day data/last day data.

Currently I am using python and pandas.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

倦话 2025-02-04 07:35:43

想法是设备 grouper with groupby.lastby.last ,在device中获得差异,并首先替换通过订阅的最后一个ANF的值:

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

Idea is aggregate per Device and hours/days in Grouper with GroupBy.first and GroupBy.last, get difference per Device and replace first value by substract last anf first value:

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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文