Предположим, что у меня есть DataFrame с некоторым NaN
s:
>>> import pandas as pd
>>> df = pd.DataFrame([[1, 2, 3], [4, None, None], [None, None, 9]])
>>> df
0 1 2
0 1 2 3
1 4 NaN NaN
2 NaN NaN 9
Что мне нужно сделать, это заменить каждый NaN
первым значением не NaN
в том же столбце над ним. Предполагается, что первая строка никогда не будет содержать NaN
. Таким образом, для предыдущего примера результатом будет
0 1 2
0 1 2 3
1 4 2 3
2 4 2 9
Я могу просто пропустить весь столбец DataFrame по каждому столбцу, поэтапно, и установить значения напрямую, но есть ли простой (оптимально свободный от цикла) способ достижения этого?