Я имею дело с данными датчиков. Иногда эти датчики имеют затемнения и перегорания, в результате я могу иметь следующий вид временных рядов в кадре, назовем его «myData»:Как фильтровать или отбрасывать значение на основе предыдущего с помощью Deedle в C#?
[7.438984; 0,000002; 7.512345; 0.000000; 7.634912; 0.005123; 7.845627 ...]
Потому что мне нужна только 3 DECIMALS точность, я округлил данные из кадра:
var myRoundedData = myData.ColumnApply((Series<DateTime, double> numbers) => numbers.Select(kvp => Math.Round(kvp.Value, 3)));
я получаю столбцы из рамы и фильтруются Зеро «0.000»:
var myFilteredTimeSeries = from kvp in myTimeSeries where kvp.Value != 0.000 select kvp;
Итак, моя временная серия частично фильтруется: [7.439; 7,512; 7,635; 0,006; 7.846 ...]
Однако значение «0,006» недействительно!
Как я мог реализовать изящный синтаксис фильтрации на основе предыдущего значения, что-то вроде «предел процента» в скорости изменения:
если (0,006/7,635) * 100 < 0,1 затем ---> drop/delete (0.006)