API时间序列数据

时间:2018-01-09 21:43:54

标签: python python-3.x api csv data-science

我有一些数据无法重新编写,但我正在向能源管理系统发出API请求以构建一个简单的pandas数据框...当数据请求返回时,我写了一个pd_to.CSV用于数据,然后使用index_col='Date', parse_dates=True

执行read_CSV

如何将此功能合并到我的API请求中,将时间戳标记为“日期”以及parse_dates = True? (将读/写数据跳过CSV ...)

from pyhaystack.client.niagara import NiagaraHaystackSession
import pandas as pd


session = NiagaraHaystackSession(uri='http://192.x.x.x', username='username', password='password', pint=True)

op = session.nav()
op.wait()
nav = op.result
print(nav)

#Get Data for the OSA-T & convert to Pandas series:
oat = session.find_entity(filter_expr='outsideAir').result
oat_df = session.his_read_frame(oat, rng= '2017-10-01,2018-01-01').result
oat_df = pd.Series(oat_df[oat_df.columns[0]])


#Get Data for the electrical energy kWh & convert to Pandas series:
elecMeter = session.find_entity(filter_expr='elecMeter').result
elecMeter_df = session.his_read_frame(elecMeter, rng= '2017-10-01,2018-01-01').result
elecMeter_df = pd.Series(elecMeter_df[elecMeter_df.columns[0]])

#Get Data for the natural gas energy therms & convert to Pandas series:
gasMeter = session.find_entity(filter_expr='gasMeter').result
gasMeter_df = session.his_read_frame(gasMeter, rng= '2017-10-01,2018-01-01').result
gasMeter_df = pd.Series(gasMeter_df[gasMeter_df.columns[0]])

UtilityInfo = pd.DataFrame({'oat' : oat_df, 'kWh' : elecMeter_df, 'therms' : gasMeter_df})

这是我读取/写入CSV的地方,我希望将其合并到API请求中...除非这只是做读/写的最佳实践??? ..基本上在读/写步骤之间下面我要欺骗并打开Excel来标记我希望避免的时间戳列'日期'!!!

UtilityInfo.to_csv('C:\\Python Scripts\\UtilityInfo.csv', sep=',', header=True, index=True, na_rep='N/A')

UtilityInfo = pd.read_csv('C:\\Python Scripts\\UtilityInfo.csv', index_col='Date', parse_dates=True)

1 个答案:

答案 0 :(得分:1)

您可以使用UtilityInfo.index.names=['Date']为索引命名。

您还可以使用df.reset_index()

从此索引创建列

好参考:Rename Pandas DataFrame Index