Python 목록에서 Nan 제거

Python 목록에서 Nan 제거

2022-09-16 last update

7 minutes reading Python
Nan은 파이썬 언어에서 "숫자가 아님"을 의미합니다. 일반적으로 데이터에 존재하지 않는 float형 값입니다. 이러한 이유로 데이터 사용자는 "nan"값을 제거해야 합니다. 목록 데이터 구조에서 "nan"값을 제거하는 데 사용할 수 있는 다양한 접근 방식이 있습니다. 따라서 우리는 Python의 목록에서 "nan"값을 제거하는 방법을 보여주기 위해 이 기사를 구현했습니다. 이를 위해 Windows 10에서 Spyder3 도구를 사용해 왔습니다.

방법 01: 수학 모듈의 isnan() 함수


목록에서 "nan"을 제거하는 첫 번째 방법은 수학 모듈의 "isnan()"함수를 사용하는 것입니다. Spyder3에서 새 프로젝트를 시작하고 수학 모듈을 가져옵니다. "NumPy"모듈에서 "nan"패키지를 가져옵니다. 일부 "nan"및 정수 유형 값이 있는 코드에서 "L1"이라는 목록을 정의했습니다. 이 목록은 먼저 인쇄되었습니다. 목록 항목이 "nan"인지 확인하기 위해 "for"루프 내에서 수학 모듈의 "isnan()"함수를 사용했습니다. 그렇지 않은 경우 해당 값을 새 목록 "L2"에 저장합니다. "for"루프가 끝나면 새 목록이 인쇄됩니다.
import math

from numpy import nan

L1 = [10, nan, 20, nan, 30, nan, 40, nan, 50]

print(L1)

L2 = [item for item in L1 if not(math.isnan(item) = = False]

print(L2)

출력은 "nan"값이 있는 첫 번째 목록과 정수 값만 있는 두 번째 목록을 표시합니다.

방법 02: Numpy 모듈의 isnan() 함수


네, 모듈의 "isnan"함수를 사용하여 Numpy 모듈의 객체를 사용하여 목록에서 "nan"을 제거할 수도 있습니다. 먼저 Numpy 모듈을 해당 개체와 함께 가져오고 "nan"도 가져옵니다. 일부 정수 및 nan 값으로 배열이 정의되었습니다. 이 배열은 Numpy 객체에 의해 변수 "Arr1"에 저장되고 출력됩니다. Numpy 모듈의 목적은 "isnan()"함수를 활용하여 "Arr1"에서 "nan"값을 제거하는 것입니다. 새 목록 "Arr2"가 다시 인쇄됩니다.
Import numpy as np

from numpy import nan

Arr1 = np.array([nan, 88, nan, 36, nan, 49, nan]

print(Arr1)

Arr2 = Arr1 [ np.logica_not 9np.insan(Arr1))]

print(Arr2)

원본 목록과 업데이트된 목록이 있습니다.

방법 03: Pandas 모듈의 IsNull() 함수


이를 위해 panda 패키지의 "IsNull()"함수도 활용할 수 있습니다. 따라서 pandas와 Numpy 라이브러리를 가져옵니다. 그런 다음 일부 문자열과 nan 값으로 목록을 정의하고 인쇄했습니다. 위의 예제와 동일한 구문으로 panda의 객체를 통해 isnull() 함수를 사용했습니다. 새로 nan-free 목록이 저장되고 인쇄됩니다.
import pandas as pd

from numpy import nan

L1 = [‘John’, nan, ‘marry’, nan, ‘william’, nan, nan, ‘fredick’ ]

print(L1)

L2 = [item for item in L1 if  not(pd.isnull(item) = = True]

print(L2)

실행은 문자열과 nan 값이 있는 원래 목록을 먼저 표시한 다음 nan-free 목록을 표시합니다.

방법 04: For 루프


내장 함수 없이 목록에서 "nan"값을 제거할 수도 있습니다. 그래서 우리는 리스트 “L1”을 정의하고 그것을 출력했습니다. 또 다른 빈 목록 "L2"가 정의되었습니다. "if"문은 "for"루프 내에서 "L1"목록의 항목이 nan인지 여부를 확인하는 데 사용되었습니다. 그렇지 않은 경우 특정 항목이 빈 목록 "L2"에 추가됩니다. 이렇게 하면 새로 생성된 "L2"목록이 생성되어 출력됩니다.
from numpy import nan

L1 = [‘John’, nan, ‘marry’, nan, ‘william’, nan, nan, ‘fredick’ ]

print(L1)

L2 =[ ]

For i in L1

If str(i) != ‘nan’

L2.append(i)

print(L2)

두 목록을 모두 보여주는 출력을 볼 수 있습니다.

방법 05: 목록 이해


또 다른 잘 알려진 방법은 "nan"을 제거하는 목록 이해입니다. 우리는 위의 코드에서 사용한 것과 같은 코드를 사용하고 있습니다. 유일한 변경 사항은 "nan"값을 제거한 후 새 목록을 생성하기 위해 목록 이해 방법과 함께 "for"루프를 사용하는 것입니다.
from numpy import nan

L1 = [‘John’, nan, ‘marry’, nan, ‘william’, nan, nan, ‘fredick’ ]

print(L1)

L2 = [item for item in L1 if  str( (item) = = ‘nan’]

print(L2)

역시 4번 방법과 같은 출력을 보여줍니다.

결론:


목록에서 "nan"값을 제거하는 5가지 간단하고 쉬운 방법에 대해 논의했습니다. 우리는 이 기사가 모든 종류의 사용자에게 매우 쉽고 이해하기 쉽다고 굳게 믿습니다.