2014-11-23 2 views
2

나는 불행하게도에서 날짜 형식을 전환하는 팬더 dataframe 있습니다여러 팬더를 구문 분석하는 방법 날짜 시간 형식

first part of pandas dataframe with one DT format

에 :

second part of pandas dataframe with another DT format

은 내가 안양 [ '을 구문 분석 할 필요가 DT ']를 Datetime으로, DatetimeIndex를 입력합니다. 작동하는 것 같다,하지만 날짜 시간의 두 가지 유형의 유지 :

df['Datetime'] = pd.to_datetime(df['DT']) 
df = df.set_index('Datetime') 
del df['DT'] 

dataframe datafarme

하지만 팬더의 시계열 기능이 작동하지 않습니다가, 예 :

from datetime import time 
df.between_time(time(0),time(8,59,59)) 

오류를 예외를 : TypeError : 인덱스는 DatetimeIndex 여야합니다.

이 두 가지 다른 Datetime 형식을 단일 DateTimeIndex로 구문 분석하는 방법을 알고 싶습니다. 당신의 도움을 주셔서 감사합니다! 모든

답변

2

첫째, 다음 시도 :이 변수의 날짜 형식은 {B} 잘못되었다는 유를 알려줍니다

In[54]: b = '2010-10-02T24:00:00+0000' 

In[55]: pd.to_datetime(b,errors='raise') 
(... ...) 
ValueError: hour must be in 0..23 

합니다. 여기 두 가지 선택이 있습니다. 첫 번째는 {pd.to_datetime} FUNC를 적용한 후, ("00"에서 "24"수정)이 STR 포맷을 정정하는 것이다

In[56]: df 
Out[56]: 
           0 
0 11/23/2014 01:37:00 AM +0000 
1  2010-10-02T00:00:00+0000 

In[57]: pd.to_datetime(df[0]) 
Out[57]: 
0 2014-11-23 01:37:00 
1 2010-10-02 00:00:00 
Name: 0, dtype: datetime64[ns] 

번째는 {PD 내의 형식을 지정하는 것이다. to_datetime} func 그러면 ur 특수 str 형식을 인식 할 수 있습니다 (이 경우에는 시간 정보를 유지하려는 경우 매우 간단합니다)

+0

응답 해 주셔서 감사합니다. 사실 두 번째 datetime 형식이 너무 형편 없다는 사실을 알지 못했습니다. ~ 370,000 행의 양호한 데이터가 있다고 가정하면 부적합 행이 데이터의 1 % 미만을 구성 할 때 단순히 삭제하는 것이 가장 바람직하다고 생각합니다. 문제는 다음 사라집니다! – user3654387

+0

np. pls 도움이 내 대답을 투표 :) – leo