Pandas는 NaN을 사용하여 행을 삭제합니다
Suraj Joshi
2023년1월30일
Pandas
Pandas DataFrame Row
Pandas NaN
-
Pandas는
DataFrame.notna()메서드를 사용하여 NaN으로 행을 삭제합니다 -
Pandas는
DataFrame.dropna()메서드를 사용하여 모든 열에 대해NaN값이있는 행만 삭제합니다 -
Pandas는
DataFrame.dropna()메서드를 사용하여 특정 열에 대해NaN값이있는 행만 삭제합니다 -
Pandas는
DataFrame.dropna()메서드를 사용하여 모든 열에 대해NaN값이있는 행을 삭제합니다
이 튜토리얼에서는DataFrame.notna()및DataFrame.dropna()메서드를 사용하여NaN 값이있는 모든 행을 삭제하는 방법을 설명합니다.
아래 예제 코드에서 DataFrame을 사용합니다.
import pandas as pd
roll_no = [501, 502, 503, 504, 505]
data = pd.DataFrame(
{
"Name": ["Alice", "Steven", "Neesham", "Chris", "Alice"],
"Age": [19, None, 18, 21, None],
"Income($)": [4000, 5000, None, 3500, None],
"Expense($)": [3000, 2000, 2500, 25000, None],
}
)
print(data)
출력:
Name Age Income($) Expense($)
0 Alice 19.0 4000.0 3000.0
1 Steven NaN 5000.0 2000.0
2 Neesham 18.0 NaN 2500.0
3 Chris 21.0 3500.0 25000.0
4 Alice NaN NaN NaN
Pandas는DataFrame.notna()메서드를 사용하여 NaN으로 행을 삭제합니다
DataFrame.notna()메서드는 호출자 DataFrame과 동일한 수의 행과 열을 가진 부울 객체를 반환합니다. 요소가 NaN이 아니면 boolean 객체의 True값에 매핑되고, 요소가 NaN이면 False값에 매핑됩니다.
import pandas as pd
roll_no = [501, 502, 503, 504, 505]
data = pd.DataFrame(
{
"Name": ["Alice", "Steven", "Neesham", "Chris", "Alice"],
"Age": [19, None, 18, 21, None],
"Income($)": [4000, 5000, None, 3500, None],
"Expense($)": [3000, 2000, 2500, 25000, None],
}
)
print("Initial DataFrame:")
print(data)
print("")
data = data[data["Income($)"].notna()]
print("DataFrame after removing rows with NaN value in Income Field:")
print(data)
출력:
Initial DataFrame:
Name Age Income($) Expense($)
0 Alice 19.0 4000.0 3000.0
1 Steven NaN 5000.0 2000.0
2 Neesham 18.0 NaN 2500.0
3 Chris 21.0 3500.0 25000.0
4 Alice NaN NaN NaN
DataFrame after removing rows with NaN value in Income Field:
Name Age Income($) Expense($)
0 Alice 19.0 4000.0 3000.0
1 Steven NaN 5000.0 2000.0
3 Chris 21.0 3500.0 25000.0
여기서는Income($)열에notna()메소드를 적용하여 열의 값에 따라True 또는False 값이있는 계열 객체를 반환합니다. boolean 객체를 인덱스로 원본 DataFrame에 전달하면Income($)열에 대해NaN 값이없는 행만 가져옵니다.
Pandas는DataFrame.dropna()메서드를 사용하여 모든 열에 대해NaN 값이있는 행만 삭제합니다
import pandas as pd
roll_no = [501, 502, 503, 504, 505]
data = pd.DataFrame(
{
"Id": [621, 645, 210, 345, None],
"Age": [19, None, 18, 21, None],
"Income($)": [4000, 5000, None, 3500, None],
"Expense($)": [3000, 2000, 2500, 25000, None],
}
)
print("Initial DataFrame:")
print(data)
print("")
data = data.dropna(how="all")
print("DataFrame after removing rows with NaN value in All Columns:")
print(data)
출력:
Initial DataFrame:
Id Age Income($) Expense($)
0 621.0 19.0 4000.0 3000.0
1 645.0 NaN 5000.0 2000.0
2 210.0 18.0 NaN 2500.0
3 345.0 21.0 3500.0 25000.0
4 NaN NaN NaN NaN
DataFrame after removing rows with NaN value in All Columns:
Id Age Income($) Expense($)
0 621.0 19.0 4000.0 3000.0
1 645.0 NaN 5000.0 2000.0
2 210.0 18.0 NaN 2500.0
3 345.0 21.0 3500.0 25000.0
DataFrame의 모든 필드에 대해NaN 값이있는 행만 제거합니다. dropna()메소드에서how='all'을 설정하여 행의 모든 열 값이NaN 인 경우에만 메소드가 행을 드롭하도록합니다.
Pandas는DataFrame.dropna()메서드를 사용하여 특정 열에 대해NaN 값이있는 행만 삭제합니다
import pandas as pd
roll_no = [501, 502, 503, 504, 505]
data = pd.DataFrame(
{
"Id": [621, 645, 210, 345, None],
"Age": [19, None, 18, 21, None],
"Income($)": [4000, 5000, None, 3500, None],
"Expense($)": [3000, 2000, 2500, 25000, None],
}
)
print("Initial DataFrame:")
print(data)
print("")
data = data.dropna(subset=["Id"])
print("DataFrame after removing rows with NaN value in Id Column:")
print(data)
출력:
Initial DataFrame:
Id Age Income($) Expense($)
0 621.0 19.0 4000.0 3000.0
1 645.0 NaN 5000.0 2000.0
2 210.0 18.0 NaN 2500.0
3 345.0 21.0 3500.0 25000.0
4 NaN NaN NaN NaN
DataFrame after removing rows with NaN value in Id Column:
Id Age Income($) Expense($)
0 621.0 19.0 4000.0 3000.0
1 645.0 NaN 5000.0 2000.0
2 210.0 18.0 NaN 2500.0
3 345.0 21.0 3500.0 25000.0
Id열에 만 NaN값이있는 DataFrame의 모든 열을 삭제합니다.
Pandas는DataFrame.dropna()메서드를 사용하여 모든 열에 대해NaN 값이있는 행을 삭제합니다
import pandas as pd
roll_no = [501, 502, 503, 504, 505]
data = pd.DataFrame(
{
"Id": [621, 645, 210, 345, None],
"Age": [19, None, 18, 21, None],
"Income($)": [4000, 5000, None, 3500, None],
"Expense($)": [3000, 2000, 2500, 25000, None],
}
)
print("Initial DataFrame:")
print(data)
print("")
data = data.dropna()
print("DataFrame after removing rows with NaN value in any column:")
print(data)
출력:
Initial DataFrame:
Id Age Income($) Expense($)
0 621.0 19.0 4000.0 3000.0
1 645.0 NaN 5000.0 2000.0
2 210.0 18.0 NaN 2500.0
3 345.0 21.0 3500.0 25000.0
4 NaN NaN NaN NaN
DataFrame after removing rows with NaN value in any column:
Id Age Income($) Expense($)
0 621.0 19.0 4000.0 3000.0
3 345.0 21.0 3500.0 25000.0
기본적으로dropna()메소드는 하나 이상의NaN 값이있는 모든 행을 제거합니다.
튜토리얼이 마음에 드시나요? DelftStack을 구독하세요 YouTube에서 저희가 더 많은 고품질 비디오 가이드를 제작할 수 있도록 지원해주세요. 구독하다
작가: Suraj Joshi
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn관련 문장 - Pandas DataFrame Row
- Pandas DataFrame의 행 수를 얻는 방법
- Pandas에서 DataFrame 행을 무작위로 섞는 방법
- Pandas의 열 값을 기반으로 데이터 프레임 행을 필터링하는 방법
- Pandas에서 DataFrame의 행을 반복하는 방법
- Pandas에서 특정 열이 주어진 조건을 만족하는 모든 행의 색인을 얻는 방법
- Pandas를 사용하여 DataFrame에서 중복 행 찾기
