2017-12-22 11 views
0

타임 스탬프 작업과 동시에 Python으로 NaT를 확인하려면 어떻게해야합니까? 예 : 변수 _date이 될 수 있습니다 NaT 또는NaT 또는 pandas 타임 스탬프 모두 검사

나는이 사용하는 경우 Timestamp('2017-12-02 00:00:00') : np.isnat(np.datetime64(_date)), 그것은 Timestamp('2017-12-02 00:00:00') 작동하지만 NaT

+0

유효 시간 (타임 스탬프), 잘못된 시간 (NaT) 및 기타 (문자열, int 등)의 3 가지 범주를 원한다고 생각합니다. 그게 가능하다면, 적어도 당신이 구체적으로 묻는 방식으로 나는 확신하지 못합니다. 샘플 배열이나 데이터 프레임을 만들면 (@ Gullan이 답을 찾으면) 더 나은 결과를 얻을 수 있습니다. – JohnE

+0

여기의 해답은 배열이나 시리즈에 datetime의 dtype이 있는지 또는 혼합 (객체) dtype이 – JohnE

답변

3

당신은 to_datetime를 사용하여

import pandas as pd 
import numpy as np 

time = pd.Series(['2017-12-02 20:40:30','2017-12-02 00:00:00',np.nan]) 
time = time.apply(lambda x: pd.Timestamp(x)) 
print(time) 
0 2017-12-02 20:40:30 
1 2017-12-02 00:00:00 
2     NaT 


time.isna() 

0 False 
1 False 
2  True 


time.fillna("missing") 

0 2017-12-02 20:40:30 
1 2017-12-02 00:00:00 
2    missing 
+1

인지에 따라 달라집니다. 참고 : NaN과 NaT에 대해서는 isna가 false가됩니다. np.nat가 (나는) 반면 시간은 구체적이지 않습니다. 나는 OP가 무엇을 묻고 있는지 정말로 모른다. 이 대답은 좋은 시작처럼 보입니다. – JohnE

+0

네, 맞습니다. 그 점을 지적 해 주셔서 감사합니다. @ 존 –

0

isna 또는 fillna 방법을 사용할 수 있습니다

time=pd.to_datetime(time) 
time 
Out[1131]: 
0 2017-12-02 20:40:30 
1 2017-12-02 00:00:00 
2     NaT 
dtype: datetime64[ns]