2017-06-21 66 views
0

我有一个熊猫数据帧,它看起来像这样:功能与数据帧tsfresh

  time 000010 000017 000033  000034  000041  000042 \ 

0  672.246427  NaN  NaN  NaN 122.812927 367.110779 75.933125 
1  672.253247  NaN  NaN  NaN 126.228996 372.775421 78.117798 
2  672.260270  NaN  NaN  NaN 126.909046 369.460754 77.109196 
3  672.267205  NaN  NaN  NaN 129.729416 376.499878 76.996864 
4  672.274120  NaN  NaN  NaN 126.082420 380.343506 76.199158 
5  672.281085  NaN  NaN  NaN 127.412136 387.227203 78.589165 
6  672.288012  NaN  NaN  NaN 131.672180 394.507355 83.319740 
7  672.294974  NaN  NaN  NaN 128.294861 390.472992 78.814026 
8  672.301931  NaN  NaN  NaN 134.104858 393.601486 82.421974 
9  672.308877  NaN  NaN  NaN 119.213364 393.934875 80.444237 
10 672.315816  NaN  NaN  NaN 126.745148 378.437531 79.340736 
11 672.322750  NaN  NaN  NaN 114.940750 367.477142 76.719002 
12 672.329622  NaN  NaN  NaN 118.000877 364.089691 74.932938 

我打算与模块“tsfresh”用来提取特征。编号的列标题是对象标识,时间列是时间序列。

此数据帧被称为“数据”等我试图使用提取功能的命令:

extracted_features = extract_features(data, column_id = objs[1:], column_sort = "time") 

其中的OBJ [1:]这里有对象ID的列标题的右侧“时间”。

这个错误与'具有多个元素的数组的真值不明确',但任何人都可以帮助我做这个工作,并提取一个不错的熊猫数据框的功能?

非常感谢提前!

回答

1

也许我误解了你的问题,但是(当我正确理解你的时候),你需要重新排列你的数据框的形式,tsfresh可以理解它。

column_id假设(如其名称所示)列名与ID列 - 你没有。如果我正确地看到这个,你只有6个不同的ID(000010,000017,000033,000034,000041,000042),其中13个时间序列值只有一种(我们称之为data)。所以tsfresh希望有一个数据帧,它看起来像

id  kind value  time 
000034 data 122.812927 672.246427 
... 
000041 data 367.110779 672.246427 
... 

然后可以送入tsfresh此使用

extract_features(df, column_id="id", column_kind="kind", 
       column_value="value", column_sort="time") 

此外,您还需要摆脱NaN的列(因为tsfresh无法知道如何处理它们)。

请看看我们关于数据格式的文档:http://tsfresh.readthedocs.io/en/latest/text/data_formats.html