Заполняйте значения ТОЛЬКО МЕЖДУ строками в DataFrame pandasPython

Программы на Python
Anonymous
 Заполняйте значения ТОЛЬКО МЕЖДУ строками в DataFrame pandas

Сообщение Anonymous »

Я работаю над проектом с некоторыми данными о ценах на подержанные автомобили. Из-за характера данных в фрейме данных, с которым я работаю, есть пробелы.
Мне нужно заполнить пробелы в столбцах, но только если они находятся МЕЖДУ двумя значениями (т. е. оба значения выше Nan).
Вот упрощенный пример того, над чем я работаю с:

Код: Выделить всё

import pandas as pd
from datetime import datetime

date_index = pd.date_range(datetime(2023,2,1), datetime(2023,2,8))

prices_dict = {

'car1': [1000, 1000, np.nan, np.nan, 1200, 1250, np.nan, np.nan],
'car2': [np.nan, np.nan, np.nan, 500, 600, 610, 630, np.nan],
'car3': [np.nan, 1000, np.nan, 950, np.nan, 950, np.nan, np.nan],
'car4': [np.nan, 790, np.nan, np.nan, np.nan, 800, 750, 750],
}

prices_df = pd.DataFrame(data=prices_dict, index=date_index)
Выглядит это так:

Код: Выделить всё

--------    car1    car2    car3    car4
2023-02-01  1000.0
2023-02-02  1000.0         1000.0   790.0
2023-02-03
2023-02-04          500.0   950.0
2023-02-05  1200.0  600.0
2023-02-06  1250.0  610.0   950.0   800.0
2023-02-07          630.0           750.0
2023-02-08                          750.0

Я немного покопался и знаю о существовании .ffil() .bfill() и .fillna(), но они кажутся уникальными для прямого или обратного заполнения. Мне нужно заполнить вперед, но только для пробелов между двумя значениями.
Ожидаемый результат:

Код: Выделить всё

--------    car1    car2    car3    car4
2023-02-01  1000.0
2023-02-02  1000.0         1000.0   790.0
2023-02-03  1000.0         1000.0   790.0
2023-02-04  1000.0  500.0   950.0   790.0
2023-02-05  1200.0  600.0   950.0   790.0
2023-02-06  1250.0  610.0   950.0   800.0
2023-02-07          630.0           750.0
2023-02-08                          750.0

Большое спасибо!

Подробнее здесь: https://stackoverflow.com/questions/756 ... -dataframe

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