2017-06-21 86 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