본문 바로가기
파이썬

파이썬 Pandas DataFrame의 선행 값으로 NaN을 대체하는 방법은 무엇입니까?

by º기록 2020. 12. 1.
반응형

일부 NaN 이있는 DataFrame이 있다고 가정합니다.

>>> 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 열 단위, 요소 단위로 반복하고 값을 직접 설정할 수 있지만이를 달성하는 쉬운 (최적의 경우 루프가없는) 방법이 있습니까?

 

해결 방법

 


>>> df = pd.DataFrame([[1, 2, 3], [4, None, None], [None, None, 9]])
>>> df.fillna(method='ffill')
   0  1  2
0  1  2  3
1  4  2  3
2  4  2  9

이 방법...

마지막 유효 관찰을 다음 유효로 전파

반대로 진행하려면 bfill 메서드도 있습니다.

이 메소드는 DataFrame inplace를 수정하지 않습니다. 반환 된 DataFrame을 변수에 다시 바인딩하거나 inplace = True 를 지정해야합니다.

df.fillna(method='ffill', inplace=True)

 

참조 페이지 https://stackoverflow.com/questions/27905295

 

 

반응형

댓글