将csv数据集转换为HDF5以获取nilmtk

时间:2018-06-10 02:49:10

标签: python hdf5

我最近正在研究nilmtk项目。我能够安装其工具包并运行其示例。但是当我尝试将我的数据集转换为HDF5中的Dataset metadata 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”之下,如MeterDevice在document中所述 如何在python中创建这种类型的(两行标签)表?

我的设备数量数据已准备好从Fluke Analyze中提取。此时,我只想用nilmtk工具包运行我自己的数据集。希望有人可以指导我。

1 个答案:

答案 0 :(得分:0)

您看到的两行标签是Pandas MultiIndex。在这种特殊情况下,DataFrame的列是MultiIndex,这基本上意味着存在具有多个级别的列标签的层次结构。

您可以使用多级列标签制作自己的DataFrame,如下所示:

cols = pd.MultiIndex.from_tuples(
    [('physical_quantity', 'type'), ('power', 'apparent')])
df = pd.DataFrame([[1,2],[3,4]], columns=cols)