Поляры получают значение разницы монотонно возрастающих значений с ошибочными данными.Python

Программы на Python
Ответить
Anonymous
 Поляры получают значение разницы монотонно возрастающих значений с ошибочными данными.

Сообщение Anonymous »

У меня есть данные наблюдений, проводимые каждую минуту. Значения данных наблюдений постоянно увеличиваются. Иногда встречаются ошибочные данные, где data[n] < data[n-1].
Пример:
pl.DataFrame(dict(
time= ['10:00', '10:01', '10:02', '10:03', '10:04', '10:05', '10:06'],
value=[ 1000 , 10 , 22 , 22 , 50 , 1100 , 60 ]
))

Я хочу получать данные за минуту и ​​сглаживать недопустимые значения. Итак, в этом случае, когда мы видим 10 после 1000, мы устанавливаем 1000 на 0 и разделяем разницу, поэтому 5 для 10:00 и 5 для 10:01.
Для предыдущего кадра данных результат должен быть 5, 5, 12, 0, 28, 5, 5.
Как мы можем выразить это в полярных выражениях?
Это выражение, кажется, работает, за исключением того, что оно пропускает первые два значения
df.with_columns(
pl.when(pl.col('value').shift(-1) < pl.col('value'))
.then(0)
.otherwise(pl.col('value'))
.alias('value_fixed')
).with_columns(
pl.when(pl.col('value_fixed') == 0)
.then((pl.col('value_fixed').shift() + pl.col('value_fixed').shift(-1)) / 2)
.otherwise(pl.col('value_fixed'))
.alias('value_fixed_avg')
).with_columns(
pl.col('value_fixed_avg').diff()
)


Подробнее здесь: https://stackoverflow.com/questions/759 ... ratic-data
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»