Pandas는 NaN을 사용하여 행을 삭제합니다
Suraj Joshi
2023년1월30일
-
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
값이있는 모든 행을 제거합니다.
작가: 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에서 중복 행 찾기