带有 tsfresh 的特征数据框
Features dataframe with tsfresh
我有一个 pandas 数据框,看起来像这样:
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' 一起使用以提取特征。编号列 header 是 object ID,时间列是时间序列。
此数据框称为 'data',因此我正在尝试使用提取特征命令:
extracted_features = extract_features(data, column_id = objs[1:], column_sort = "time")
其中 objs[1:] 这里是 object 列右侧的 ID header "time".
此错误与 'The truth value of an array with more than one element is ambiguous' 有关,但任何人都可以帮助我完成这项工作并提取一个不错的 pandas 特征数据框吗?
非常感谢!
也许我误解了你的问题,但是(当我理解正确时),你需要以一种形式重新排序你的数据框,tsfresh 可以理解它。
column_id
假设(正如其名称所暗示的那样)一个带有 ID 列的列名——您没有。如果我没看错的话,你只有 6 个不同的 ID(000010、000017、000033、000034、000041、000042),每个 ID 都有 13 个只有一种的时间序列值(我们称之为 data
)。所以tsfresh想要一个dataframe,看起来像
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
我有一个 pandas 数据框,看起来像这样:
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' 一起使用以提取特征。编号列 header 是 object ID,时间列是时间序列。
此数据框称为 'data',因此我正在尝试使用提取特征命令:
extracted_features = extract_features(data, column_id = objs[1:], column_sort = "time")
其中 objs[1:] 这里是 object 列右侧的 ID header "time".
此错误与 'The truth value of an array with more than one element is ambiguous' 有关,但任何人都可以帮助我完成这项工作并提取一个不错的 pandas 特征数据框吗?
非常感谢!
也许我误解了你的问题,但是(当我理解正确时),你需要以一种形式重新排序你的数据框,tsfresh 可以理解它。
column_id
假设(正如其名称所暗示的那样)一个带有 ID 列的列名——您没有。如果我没看错的话,你只有 6 个不同的 ID(000010、000017、000033、000034、000041、000042),每个 ID 都有 13 个只有一种的时间序列值(我们称之为 data
)。所以tsfresh想要一个dataframe,看起来像
id kind value time
000034 data 122.812927 672.246427
...
000041 data 367.110779 672.246427
...
然后您可以使用
将其输入 tsfreshextract_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