dropna() 메서드로 결측치 제거
pandas DataFrame에서 누락된 값, 즉 NaN(결측치)을 제거하려면 dropna() 메서드를 사용합니다. 이 메서드는 NaN 값이 포함된 행을 삭제한 새로운 DataFrame을 반환합니다.
먼저 필요한 라이브러리를 임포트합니다.
import pandas as pd
CSV 파일을 읽어와 DataFrame을 생성합니다.
dataFrame = pd.read_csv("C:\\Users\\amit_\\Desktop\\CarRecords.csv")dropna()를 호출하면 NaN이 포함된 행이 모두 제거됩니다. 참고로, 원본 데이터에서 숫자 열에 결측치가 있으면 해당 값은 NaN으로 표시되며, 정수형이 아닌 실수형(float)으로 자동 변환됩니다.
dataFrame.dropna()
전체 예제 코드
다음은 처음부터 끝까지의 완전한 코드입니다.
import pandas as pd
# CSV 파일 읽기
dataFrame = pd.read_csv("C:\\Users\\amit_\\Desktop\\CarRecords.csv")
print("DataFrame with some NaN (missing) values...\n", dataFrame)
# DataFrame의 행과 열 개수 확인
print("\nNumber of rows and column in our DataFrame = ", dataFrame.shape)
# 결측치 제거
print("\nDataFrame after removing NaN values...\n", dataFrame.dropna())실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
DataFrame with some NaN (missing) values...
Car Place UnitsSold
0 Audi Bangalore 80.0
1 Porsche Mumbai NaN
2 RollsRoyce Pune 100.0
3 BMW Delhi NaN
4 Mercedes Hyderabad 80.0
5 Lamborghini Chandigarh 80.0
6 Audi Mumbai NaN
7 Mercedes Pune 120.0
8 Lamborghini Delhi 100.0
Number of rows and colums in our DataFrame = (9, 3)
DataFrame after removing NaN values ...
Car Place UnitsSold
0 Audi Bangalore 80.0
2 RollsRoyce Pune 100.0
4 Mercedes Hyderabad 80.0
5 Lamborghini Chandigarh 80.0
7 Mercedes Pune 120.0
8 Lamborghini Delhi 100.0참고 사항
출력 결과에서 볼 수 있듯이, 원래 9개의 행 중 UnitsSold 열에 NaN이 있는 1, 3, 6번째 행(총 3개)이 제거되어 6개의 행만 남았습니다.
또한 dropna()에는 유용한 옵션들이 있습니다. 예를 들어 axis=1을 지정하면 결측치가 있는 열을 제거할 수 있고, how='all'을 사용하면 모든 값이 NaN인 행만 제거합니다. subset=['열이름'] 옵션을 사용하면 특정 열의 결측치 기준으로만 행을 삭제할 수도 있습니다.