Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python pandas - DataFrame에서 누락된(NaN) 값 제거하기

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=['열이름'] 옵션을 사용하면 특정 열의 결측치 기준으로만 행을 삭제할 수도 있습니다.