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에서 중복 행 찾기
