Python의 목록에서 NaN 제거
-
math.isnan()
메소드를 사용하여 Python의 목록에서NaN
제거 -
numpy.isnan()
메소드를 사용하여 Python의 목록에서NaN
제거 -
Python의 문자열 목록에서
NaN
제거 -
pandas.isnull()
메소드를 사용하여 Python의 목록에서NaN
제거
이 자습서에서는 Python의 목록에서NaN
값을 찾아 제거하는 다양한 방법을 살펴 봅니다. 프로그래밍에서NaN
값은 변수 값이 숫자가 아님을 의미하는Not a Number
을 의미합니다.
NaN
값이 배열 또는 목록에서 발생하면 계산에 문제와 오류가 발생할 수 있습니다. 또한이 자습서의 목록에서 문자열 값nan
을 제거하는 방법도 살펴볼 것입니다. 다음 방법을 사용하여 목록에서NaN
또는'nan'
값을 제거 할 수 있습니다.
math.isnan()
메소드를 사용하여 Python의 목록에서NaN
제거
math.isnan(value)
메소드는 숫자value
를 입력으로 취하고value
가NaN
값이면True
를 리턴하고 그렇지 않으면False
를 리턴합니다. 따라서math.isnan()
메소드를 사용하여 숫자 목록 또는 배열에NaN
값이 있는지 확인할 수 있습니다.
if float('NaN') == float('NaN')
은 Python에서False
를 반환하거나 두 개의NaN
값이 Python에서 동일하지 않다고 말할 수 있기 때문에math.isnan()
메서드가 필요합니다. 아래 예제 코드는math.isnan()
메소드를 사용하여 목록에서NaN
값을 제거하는 방법을 보여줍니다.
import math
mylist = [1, 2, float("nan"), 8, 6, 4, float("nan")]
print(mylist)
newlist = [x for x in mylist if math.isnan(x) == False]
print(newlist)
출력:
[1, 2, nan, 8, 6, 4, nan]
[1, 2, 8, 6, 4]
numpy.isnan()
메소드를 사용하여 Python의 목록에서NaN
제거
np.isnan(array)
메소드는array
를 입력으로 취하고NaN
값이면 해당 색인에 대해True
를 리턴하고 그렇지 않으면False
를 리턴합니다.
아래 예제 코드는numpy.isnan()
메소드를 사용하여 목록에서NaN
값을 제거하는 방법을 보여줍니다.
import numpy as np
mylist = [1, 2, float("nan"), 8, 6, 4, float("nan")]
print(mylist)
newlist = [x for x in mylist if np.isnan(x) == False]
print(newlist)
출력:
[1, 2, nan, 8, 6, 4, nan]
[1, 2, 8, 6, 4]
Python의 문자열 목록에서NaN
제거
이제 숫자 목록이 문자열 유형으로 변환되었다고 가정하고 여기에NaN
값이 포함되어 있는지 확인하려고합니다. 문자열 유형으로 변환 한 후NaN
값은'nan'
과 같은 문자열이되며'nan'
과 비교하여 쉽게 감지 및 제거 할 수 있습니다.
아래 예제 코드는 문자열 데이터 유형 목록에서NaN
값을 제거하는 방법을 보여줍니다.
mylist = [1, 2, "nan", 8, 6, 4, "nan"]
mylist = [str(x) for x in mylist]
print(mylist)
newlist = [x for x in mylist if x != "nan"]
print(newlist)
출력:
['1', '2', 'nan', '8', '6', '4', 'nan']
['1', '2', '8', '6', '4']
pandas.isnull()
메소드를 사용하여 Python의 목록에서NaN
제거
pandas.isnull(obj)
는 스칼라 또는 배열과 유사한obj
를 입력으로 취하고 값이NaN
,None
또는NaT
와 같으면True
를 반환합니다. 그렇지 않으면 False
를 반환합니다.
예제 코드는pandas.isnull()
메소드를 사용하여 Python 목록에서NaN
값을 제거하는 방법을 보여줍니다.
import pandas as pd
mylist = [1, 2, float("nan"), 8, float("nan"), 4, float("nan")]
print(mylist)
newlist = [x for x in mylist if pd.isnull(x) == False]
print(newlist)
출력:
[1, 2, nan, 8, nan, 4, nan]
[1, 2, 8, 4]
이제 목록의 유형을 모르거나 목록에 다양한 데이터 유형의 데이터가 포함되어 있는지 여부를 가정합니다. 이 경우 목록의 각 값을'nan'
값과 비교하여pandas.isnull()
메서드를 사용하여 목록에서NaN
값과'nan'
값을 확인하고 제거 할 수 있습니다.
pandas.isnull()
메소드를 사용할 수 있습니다. 이전에 언급 한 메소드와 달리pandas.isnull()
메소드는 문자열 데이터 유형이 입력으로 제공되는 경우 오류를 리턴하지 않기 때문입니다. 따라서pandas.isnull()
메소드를 사용하여 목록 또는 Python의 배열에서NaN
및'nan'
값을 제거 할 수 있습니다.
아래 예제 코드는pandas.isnull()
메소드와'nan'
값을 사용하여 Python의 목록에서NaN
및'nan'
값을 제거하는 방법을 보여줍니다.
import pandas as pd
mylist = ["John", 23, "nan", "New York", float("nan")]
print(mylist)
newlist = [x for x in mylist if pd.isnull(x) == False and x != "nan"]
print(newlist)
출력:
['John', 23, 'nan', 'New York', nan]
['John', 23, 'New York']