2017-10-10 9 views
1

날짜와 시간이 별도의 열을 가진이 큰 데이터 집합이 있습니다. 문자열로 변환 한 후 날짜 시간으로 변환하고 싶습니다. 그러나이 값 오류는 항상 나타납니다.Pandas datetime 변환이 입력을 인식하지 못합니다.

다음
<DTYYYYMMDD> <TIME> Adj. Open Adj. High Adj. Low Adj. Close volume 
    20010102 230100  0.5617  0.5617 0.5617  0.5617  4 
    20010102 230400  0.5616  0.5616 0.5616  0.5616  4 

코드입니다 : 여기

ValueError: time data '200101030' does not match format '%Y%m%d%H%M%S' (match) 

데이터 형식입니다

df=pd.read_csv('AUDUSD.txt') 
df['DATE']=df['<DTYYYYMMDD>'].map(str)+df['<TIME>'].map(str) 
df['DATE']=pd.to_datetime(df['DATE'],format="%Y%m%d%H%M%S") 
print(df.head(15)) 

어떤 도움을 주시면 더 좋구요!

답변

1

불량의 데이터가 있습니다. <TIME>zero입니다.

필요 매개 변수 errors='coerce'에 대한 NaT에 잘못된 데이터를 변환 :

print (df) 
    <DTYYYYMMDD> <TIME> Adj. Open Adj. High Adj. Low Adj. Close volume 
0  20010102 230100  0.5617  0.5617 0.5617  0.5617  4 
1  20010103  0  0.5616  0.5616 0.5616  0.5616  4 


df['DATE']=df['<DTYYYYMMDD>'].astype(str)+df['<TIME>'].astype(str) 
df['DATE']=pd.to_datetime(df['DATE'],format="%Y%m%d%H%M%S", errors='coerce') 
print (df) 
    <DTYYYYMMDD> <TIME> Adj. Open Adj. High Adj. Low Adj. Close volume \ 
0  20010102 230100  0.5617  0.5617 0.5617  0.5617  4 
1  20010103  0  0.5616  0.5616 0.5616  0.5616  4 

       DATE 
0 2001-01-02 23:01:00 
1     NaT