将 csv 数据集转换为 nilmtk 的 HDF5
Convert a csv dataset into HDF5 for nilmtk
我最近在调查 nilmtk project. I was able to install its toolkits and run its example. But I get stuck when I try to convert my dataset into Dataset metadata in HDF5 as required。
我不熟悉如何处理 HDF5 格式,但发现它可以导入任何内容并且需要属性。我想我必须为 HDF5 树(节点、叶、文件夹)中的每个项目创建属性。
但让我最苦恼的部分是当 redd.h5 示例数据集格式时:
import pandas as pd
import h5py
redd = pd.HDFStore('redd.h5')
redd.keys()
redd['/building6/elec/meter1']
Out[92]:
physical_quantity power
type apparent
2011-05-21 15:39:19-04:00 47.000000
2011-05-21 15:39:21-04:00 46.919998
2011-05-21 15:39:22-04:00 47.020000
...
"type" 在 "physical_quantity" 下,"apparent" 在 "power" 下,如 document 中的 MeterDevice 中所述
如何在 python 中创建这种类型的(两行标签)table?
我的设备数量数据已准备好从 Fluke Analyze 中提取。在这一点上,我只想 运行 我自己的数据集与 nilmtk 工具包。希望有人能指导我。
您看到的两行标签是 Pandas MultiIndex。在这种特殊情况下,DataFrame 的列是一个 MultiIndex,这基本上意味着存在具有多个级别的列标签的层次结构。
您可以像这样使用多级列标签创建自己的 DataFrame:
cols = pd.MultiIndex.from_tuples(
[('physical_quantity', 'type'), ('power', 'apparent')])
df = pd.DataFrame([[1,2],[3,4]], columns=cols)
我最近在调查 nilmtk project. I was able to install its toolkits and run its example. But I get stuck when I try to convert my dataset into Dataset metadata in HDF5 as required。
我不熟悉如何处理 HDF5 格式,但发现它可以导入任何内容并且需要属性。我想我必须为 HDF5 树(节点、叶、文件夹)中的每个项目创建属性。
但让我最苦恼的部分是当 redd.h5 示例数据集格式时:
import pandas as pd
import h5py
redd = pd.HDFStore('redd.h5')
redd.keys()
redd['/building6/elec/meter1']
Out[92]:
physical_quantity power
type apparent
2011-05-21 15:39:19-04:00 47.000000
2011-05-21 15:39:21-04:00 46.919998
2011-05-21 15:39:22-04:00 47.020000
...
"type" 在 "physical_quantity" 下,"apparent" 在 "power" 下,如 document 中的 MeterDevice 中所述 如何在 python 中创建这种类型的(两行标签)table?
我的设备数量数据已准备好从 Fluke Analyze 中提取。在这一点上,我只想 运行 我自己的数据集与 nilmtk 工具包。希望有人能指导我。
您看到的两行标签是 Pandas MultiIndex。在这种特殊情况下,DataFrame 的列是一个 MultiIndex,这基本上意味着存在具有多个级别的列标签的层次结构。
您可以像这样使用多级列标签创建自己的 DataFrame:
cols = pd.MultiIndex.from_tuples(
[('physical_quantity', 'type'), ('power', 'apparent')])
df = pd.DataFrame([[1,2],[3,4]], columns=cols)