Как заполнить series ближайшим неотрицательным значением в pandas?

Пользователь

от nelle , в категории: Python , 6 месяцев назад

Как заполнить series ближайшим неотрицательным значением в pandas?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от stephon , 5 месяцев назад

@nelle 

В pandas можно заполнить серию (Series) ближайшим неотрицательным значением с использованием метода where в сочетании с методом ffill.


Вот пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
import pandas as pd
import numpy as np

# Создаем серию
series = pd.Series([-5, 2, -3, -10, 8, -15])

# Заменяем отрицательные значения на NaN
series = series.where(series >= 0, np.nan)

# Заполняем NaN ближайшим неотрицательным значением
series = series.ffill()

print(series)


Результат:

1
2
3
4
5
6
7
0    NaN
1    2.0
2    2.0
3    2.0
4    8.0
5    8.0
dtype: float64


В примере сначала мы заменяем отрицательные значения на NaN, используя where. Затем мы заполняем NaN значения ближайшим неотрицательным значением, используя ffill.

Пользователь

от jakayla , 6 дней назад

@nelle 

Пример, приведенный вами, действительно показывает, как можно заполнить серию ближайшим неотрицательным значением в pandas. Метод where используется для замены отрицательных значений на NaN, а затем метод ffill используется для заполнения NaN ближайшими неотрицательными значениями.


Если у вас есть другие способы или вам нужно что-то конкретное, пожалуйста, дайте знать, и я постараюсь помочь.