2014-11-17 1 views
0

Strptime은 내가 (파이썬 데이터 과학자로 시작하는) 그것을하기를 원하지 않습니다. 다음과 같은 형식의 데이터 파일이 있습니다.datetime.strptime from dataframe : error

STN,YYYYMMDD,HH,RH 
210,20121001,1,0 
210,20121001,2,0 
210,20121001,3,0 
210,20121001,4,0 
... 

두 번째 열의 날짜는 관측치의 세 번째 시간 (1-24)입니다. 날짜/시간 형식을 다른 데이터와 병합하려면 날짜와 시간을 가져오고 싶습니다. 내 시도 : (나를 위해) 매우 비밀 오류와 마지막 줄에

import pandas as pd 
from datetime import datetime 

meteo = pd.read_csv("x:\\hourly.txt", parse_dates=[[1,2]]) 
# dataframe created with a column 'YYYYMMDD_HH' 
meteo['datetime']=meteo['YYYYMMDD_HH'].apply(lambda x: datetime.strptime(x,'%Y%m%d %H')) 

파이썬 충돌 :

Traceback (most recent call last): 
    File "X:\test.py", line 11, in <module> 
    meteo['datetime']=meteo['YYYYMMDD_HH'].apply(lambda x: datetime.strptime(x,'%Y%m%d %H')) 
    File "C:\Program Files\Anaconda3\lib\site-packages\pandas\core\series.py", line 1998, in apply 
    mapped = lib.map_infer(values, f, convert=convert_dtype) 
    File "inference.pyx", line 1016, in pandas.lib.map_infer (pandas\lib.c:53184) 
    File "X:\test.py", line 11, in <lambda> 
    meteo['datetime']=meteo['YYYYMMDD_HH'].apply(lambda x: datetime.strptime(x,'%Y%m%d %H')) 
    File "C:\Program Files\Anaconda3\lib\_strptime.py", line 500, in _strptime_datetime 
    tt, fraction = _strptime(data_string, format) 
    File "C:\Program Files\Anaconda3\lib\_strptime.py", line 340, in _strptime 
    data_string[found.end():]) 
ValueError: unconverted data remains: 4 

내가 잘못 뭐하는 거지? 미리 도움을 주셔서 감사합니다. Niels

+0

나는 그 값을 인쇄하고 어떻게 보이는지 보았습니다 ... 당신의 strptime 패턴이나 값에 여분의 문자가있는 것처럼 보입니다 ... 아마도 x의 크기를 강제로 제한하여 문제를 해결할 수 있습니다. 그러나 확실하지 않은 Im –

답변

0

광범위한 디버깅 후 .... 데이터 파일은 1..24에서 시간이 포함되어 있습니다. 구문 분석은 시간이 일 때 오류를 발생시킵니다. 0..23 시간부터 접수합니다. 데이터 파일을 먼저 다시 포맷해야합니다!

답장을 보내 주셔서 감사합니다.

0

CSV 파일을 읽을 때 열을 구문 분석합니다.

import pandas as pd 
from datetime import datetime 

parse = lambda x: datetime.strptime(x, '%Y%m%d %H') 
df = pd.read_csv("time.csv", parse_dates = [['YYYYMMDD', 'HH']], date_parser=parse) 

print df 

는 출력 : 내가 문제를 스스로 해결

  YYYYMMDD_HH STN RH 
0 2012-10-01 01:00:00 210 0 
1 2012-10-01 02:00:00 210 0 
2 2012-10-01 03:00:00 210 0 
3 2012-10-01 04:00:00 210 0