首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将6秒功耗时间序列数据转换为1小时数据?

如何将6秒功耗时间序列数据转换为1小时数据?
EN

Stack Overflow用户
提问于 2018-07-14 21:55:08
回答 1查看 83关注 0票数 0

我有一个时间序列数据集,如下所示:

代码语言:javascript
复制
Dates           Power
09-11-12 23:40  123
09-11-12 23:40  0
09-11-12 23:40  0
09-11-12 23:40  0
09-11-12 23:40  0
09-11-12 23:40  123
09-11-12 23:40  123
09-11-12 23:40  122
09-11-12 23:40  122
09-11-12 23:41  122
09-11-12 23:41  0
09-11-12 23:41  0
09-11-12 23:41  161
09-11-12 23:41  123
09-11-12 23:41  124
09-11-12 23:41  123
09-11-12 23:41  123
09-11-12 23:41  123
09-11-12 23:41  123

在上面的数据集中,给出了电器每分钟6秒消耗的功率。我想将该数据集转换为1小时时间序列,功率单位=KW/h,即我想将其转换为1小时消耗的功率,而不是每6秒计算一次功耗总和。

我试着用2.77778e-7乘以6秒的功耗来计算它们的总和,但我感觉我做错了。这是正确的做法吗?如果不是,正确的方法是什么?

我使用了下面的代码来总结它们。

代码语言:javascript
复制
    data = pd.read_csv(
    r'E:\ukdale\house_1\channel_6.dat',
    delimiter=' ',
    header=None,
    names=['Date', 'Power'],
    dtype={'Date': np.int64, 'Power': np.float64},
    index_col='Date'
    )
    data.index = pd.to_datetime((data.index.values), unit='s')
    ts = pd.Series(data=data['Power'])
    ts.multiply(0.000000277778)
    ts1=ts.resample('h').sum()
    ts1.dropna(inplace=True)

我的结果:

代码语言:javascript
复制
Dates           Power(KW/h)
09-11-12 22:00  310
09-11-12 23:00  64948
10-11-12 0:00   279706
10-11-12 1:00   386517
10-11-12 2:00   0
10-11-12 3:00   125
10-11-12 4:00   0
10-11-12 5:00   0
10-11-12 6:00   0
10-11-12 7:00   0
10-11-12 8:00   95
10-11-12 9:00   582
10-11-12 10:00  594
10-11-12 11:00  585
EN

回答 1

Stack Overflow用户

发布于 2018-07-15 11:45:33

您可以将时间值四舍五入到最接近的小时,然后对其求和:

代码语言:javascript
复制
# Round the Timestamp to the nearest 60 minutes
scalefactor <- 60
data$Dates <- as.POSIXlt(round(as.numeric(data$Dates)/scalefactor) * scalefactor,
                                                                     origin="1970-01-01")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51344739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档