변수가 PD인지 테스트하는 방법.NaT?
제 변수 중 하나가 PD인지 테스트하려고 합니다.NaT. 나는 그것이 NaT라는 것을 알고 있지만, 여전히 그것은 시험을 통과하지 못할 것입니다.예를 들어, 다음 코드는 아무것도 인쇄하지 않습니다.
a=pd.NaT
if a == pd.NaT:
print("a not NaT")
누구 단서라도 있나요?효과적으로 테스트할 수 있는 방법이 있습니까?a
NaT인가요?
판다NaT
부동 소수점처럼 행동합니다.NaN
자신과 동등하지 않다는 점에서.대신 다음을 사용할 수 있습니다.pandas.isnull
:
In [21]: pandas.isnull(pandas.NaT)
Out[21]: True
이 또한 반환됩니다.True
None 및 NaN을 위한.
기술적으로, 당신은 또한 판다를 확인할 수 있습니다.NaT
와 함께x != x
부동 소수점 NaN에 사용되는 일반적인 패턴을 따릅니다.그러나 이는 매우 유사하고 동일한 개념을 나타내지만 실제로는 동작이 다른 다른 유형인 NumPy NaT에 문제를 일으킬 수 있습니다.
In [29]: x = pandas.NaT
In [30]: y = numpy.datetime64('NaT')
In [31]: x != x
Out[31]: True
In [32]: y != y
/home/i850228/.local/lib/python3.6/site-packages/IPython/__main__.py:1: FutureWarning: In the future, NAT != NAT will be True rather than False.
# encoding: utf-8
Out[32]: False
numpy.isnat
NumPy 확인 기능NaT
또한 판다와 함께 실패합니다.NaT
:
In [33]: numpy.isnat(pandas.NaT)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-33-39a66bbf6513> in <module>()
----> 1 numpy.isnat(pandas.NaT)
TypeError: ufunc 'isnat' is only defined for datetime and timedelta.
pandas.isnull
Pandas와 NumPy NaTs 모두에서 작동하므로, 아마도 다음과 같은 방법일 것입니다.
In [34]: pandas.isnull(pandas.NaT)
Out[34]: True
In [35]: pandas.isnull(numpy.datetime64('NaT'))
Out[35]: True
pd.NaT is pd.NaT
진실의
이것은 나에게 효과가 있습니다.
팬더를 위해 판다.isna()를 사용할 수도 있습니다.NaT, numpy.nan 또는 없음:
import pandas as pd
import numpy as np
x = (pd.NaT, np.nan, None)
[pd.isna(i) for i in x]
Output:
[True, True, True]
만약 그것이 나중이라면.Series
(예:DataFrame
열) 또한 사용할 수 있습니다..isna()
:
pd.Series(pd.NaT).isna()
# 0 True
# dtype: bool
이것이 나에게 효과가 있는 것입니다.
>>> a = pandas.NaT
>>> type(a) == pandas._libs.tslibs.nattype.NaTType
>>> True
언급URL : https://stackoverflow.com/questions/49435317/how-to-test-if-a-variable-is-pd-nat
'programing' 카테고리의 다른 글
이 SQL 문이 작동하지 않는 이유는 무엇입니까?내 MariaDB 서버에 문제가 있습니까? (0) | 2023.07.26 |
---|---|
Spring Boot이 시작되면 "메소드 이름은 토큰이어야 합니다" 예외가 발생합니다. (0) | 2023.07.26 |
JavaScript null 검사입니다. (0) | 2023.07.26 |
트랜잭션 주석 오류 (0) | 2023.07.21 |
현재 세션에서 Oracle 트리거를 사용하지 않도록 설정할 수 있습니까? (0) | 2023.07.21 |