Код: Выделить всё
import polars as pl
import numpy as np
import pandas as pd
from functime.feature_extractors import FeatureExtractor, binned_entropy
Data_Test = pl.read_csv('./DataDemo.csv')
Calc_T = 200
Data_Test.with_columns(
pl.col('datetime').cumcount().cast(pl.Int32).alias('Index')
).group_by_rolling('Index', period = '{}i'.format(Calc_T)).agg(
pl.col('datetime').last(),
pl.col('*').exclude(['datetime', 'order_book_id', 'underlying_symbol', 'Index']).ts.binned_entropy(bin_count=10).suffix('_binned_entropy'),
pl.col('*').exclude(['datetime', 'order_book_id', 'underlying_symbol', 'Index']).ts.absolute_energy().suffix('_absolute_energy'),
# pl.col('*').exclude(['datetime', 'order_book_id', 'underlying_symbol', 'Index']).ts.autocorrelation(n_lags = 20).suffix('_autocorrelation')
)
Я думаю, причина ошибки в том, что алгоритм в закомментированной строке требует временного ряда длиной больше 1, и на практике первая группа имеет только один фрагмент данных.
Я пробовал использовать
Код: Выделить всё
groupby_dynamic('Index', every = '1i', period = '{}i'.format(Calc_T), start_by = 'datapoint')Есть ли у Polars способ пропустить первые n-1 строк данных при прокрутке окно, где N — указанная нами длина окна?
Заранее спасибо!
Подробнее здесь: https://stackoverflow.com/questions/786 ... indow-size