【发布时间】:2018-01-09 21:43:54
【问题描述】:
我有一些无法复制的数据,但我正在向能源管理系统发出 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)
【问题讨论】:
-
我认为您不必从数据框中提取系列即可将它们合并到另一个数据框中。
-
是否可以添加“pyhaystack”标签?然后我们可以监控与之相关的问题。
-
当然,我正在尝试修改 pyhaystack 标签的帖子,但没有弹出任何内容...有什么想法吗?
-
刚刚看到我们需要 1500 声望才能创建标签...还不够好。
标签: python python-3.x api csv data-science