반응형
Python / numpy / pandas에서 임의의 객체가 NaN인지 효율적으로 확인합니까?
내 numpy 배열은 np.nan
누락 된 값을 지정 하는 데 사용 합니다. 데이터 세트를 반복하면서 이러한 누락 된 값을 감지하고 특수한 방식으로 처리해야합니다.
에서 지원하는 유형의 하위 집합이 아닌 numpy.isnan(val)
한 잘 작동 val
하는 numpy.isnan()
. 예를 들어 문자열 필드에서 누락 된 데이터가 발생할 수 있으며이 경우 다음과 같은 결과가 발생합니다.
>>> np.isnan('some_string')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: Not implemented for this type
예외를 잡아서 반환하는 값 비싼 래퍼를 작성하는 것 외에 False
이것을 우아하고 효율적으로 처리하는 방법이 있습니까?
pandas.isnull()
(또한 pd.isna()
최신 버전에서) 숫자 및 문자열 / 객체 배열 모두에서 누락 된 값을 확인합니다. 문서에서 다음을 확인합니다.
숫자 형 배열의 NaN, 객체 배열의 None / NaN
빠른 예 :
import pandas as pd
import numpy as np
s = pd.Series(['apple', np.nan, 'banana'])
pd.isnull(s)
Out[9]:
0 False
1 True
2 False
dtype: bool
결 numpy.nan
측값을 표현하기 위해 사용한다는 아이디어는 pandas
도입 된 pandas
것이므로이를 처리 할 도구가 있습니다.
Datetimes도 (사용 pd.NaT
하는 경우 dtype을 지정할 필요가 없습니다)
In [24]: s = Series([Timestamp('20130101'),np.nan,Timestamp('20130102 9:30')],dtype='M8[ns]')
In [25]: s
Out[25]:
0 2013-01-01 00:00:00
1 NaT
2 2013-01-02 09:30:00
dtype: datetime64[ns]``
In [26]: pd.isnull(s)
Out[26]:
0 False
1 True
2 False
dtype: bool
당신의 유형은 정말 임의적입니까? int float 또는 string이 될 것이라는 것을 알고 있다면 그냥 할 수 있습니다.
if val.dtype == float and np.isnan(val):
numpy로 래핑되었다고 가정하면 항상 dtype을 가지며 float 및 complex 만 NaN 일 수 있습니다.
반응형
'Programing' 카테고리의 다른 글
iOS 이미지 방향에 이상한 동작이 있습니다. (0) | 2020.09.09 |
---|---|
AngularJS에서 동적 모델 이름을 어떻게 설정할 수 있습니까? (0) | 2020.09.09 |
Linux에서는 동일한 번호를 생성하지만 Windows에서는 생성하지 않습니다. (0) | 2020.09.09 |
긴 쿼리를 작성하지 않고 모든 GraphQL 유형 필드를 쿼리하는 방법은 무엇입니까? (0) | 2020.09.09 |
배치 파일-명령 줄 인수 수 (0) | 2020.09.09 |