По сути, я пытаюсь сделать что-то вроде это , но за fillna
вместо суммы.
У меня есть список df, каждый с одинаковыми столбцами / индексами, упорядоченный по времени:
import numpy as np
import pandas as pd
np.random.seed(0)
df_list = []
for index in range(3):
a = pd.DataFrame(np.random.randint(3, size=(5,3)), columns=list('abc'))
mask = np.random.choice([True, False], size=a.shape)
df_list.append(a.mask(mask))
Теперь я хочу заменить numpy.nan
ячейки
DataFrame
в df_list
по значению той же ячейки в i-1 th
DataFrame
в df_list
.
, поэтому, если первый DataFrame
:
a b c
0 NaN 1.0 0.0
1 1.0 1.0 NaN
2 0.0 NaN 0.0
3 NaN 0.0 2.0
4 NaN 2.0 2.0
и 2-е:
a b c
0 0.0 NaN NaN
1 NaN NaN NaN
2 0.0 1.0 NaN
3 NaN NaN 2.0
4 0.0 NaN 2.0
Тогда выходные данные output_list
должны быть списком той же длины, что и df_list
, и иметь также DataFrames в качестве элементов.
Первая запись output_list
совпадает с первой записью df_list
.
Вторая запись output_list
:
a b c
0 0.0 1.0 0.0
1 1.0 1.0 NaN
2 0.0 1.0 0.0
3 NaN 0.0 2.0
4 0.0 2.0 2.0