반응형
일부 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
반응형
'파이썬' 카테고리의 다른 글
파이썬 Python에서 scikit-learn kmeans를 사용하여 텍스트 문서 클러스터링 (0) | 2020.12.02 |
---|---|
파이썬 Reading tab-delimited file with Pandas - works on Windows, but not on Mac (0) | 2020.12.02 |
파이썬 하나의 파일에서 여러 JSON 객체를 추출하는 방법은 무엇입니까? (0) | 2020.12.01 |
파이썬 nbviewer로 시각화 된 ipython 노트북의 셀에서 코드를 숨기는 방법은 무엇입니까? (0) | 2020.12.01 |
파이썬 How to filter rows containing a string pattern from a Pandas dataframe (0) | 2020.12.01 |
댓글