我最近正在研究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工具包运行我自己的数据集。希望有人可以指导我。
答案 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)