2017-10-31 6 views
0

날짜 및 시간을 나타내는 열 제목이있는 플롯 할 CSV 파일을 많이로드하고 있습니다. 예를 들어datetime (data_string [found.end() :]))로 변환 할 때 형식이 문제가되는 경우

:

14/01/2015 14:27 14/01/2015 14:27 
29.97299 30.05902 
30.00391 30.09555 

는 어떤 이유로, 다른 파일이 날짜와 시간은 다른 형식으로로드 얻고 그들을 변환 할 때 나는 문제로 실행하고 있습니다.

내 현재 코드 : (역 추적 포함) 오류로 이어

2015-01-14 10:50:19 
Fig 1 
2015-01-14 14:01:15 
Fig 2 
2015-01-14 14:13:08 
Fig 3 
2015-01-14 14:27:53 
Fig 4 
2015-01-14 14:40:00 
Fig 5 
15/01/2015 13:03 
Traceback (most recent call last): 

이 : 내가 받고있는 이유

File "D:/data/scripts/myscript.py", line 29, in <module> 
    time = datetime.strptime(t, '%d/%m/%Y %H:%M') 

    File "C:\Users\me\AppData\Local\Continuum\Anaconda2\lib\_strptime.py", line 335, in _strptime 
    data_string[found.end():]) 

ValueError: unconverted data remains: .1 

이해가 안

for n, f in enumerate(files): 
    df = pd.read_csv(filePath+f, delimiter=',',index_col=0) 
    times = [] 
    print df.columns.values[1] 
    for i, t in enumerate(df.columns.values): 
     if t[2]=='/': 
      time = datetime.strptime(t, '%d/%m/%Y %H:%M') 
     elif t[4]=='-': 
      time = datetime.strptime(t, '%Y-%m-%d %H:%M:%S') 
     else: 
      print "Is it a date? ", t 
     times.append(time) 
    timelists.append(times) 
    fig = plt.figure() 
    df.plot() 
    plt.savefig(figdir+(n+1).__str__()+"_"+f+".png", bbox_inches='tight',dpi=300) 
    print "Fig", n+1 
    plt.close(n) 

이 생산 이 오류, 마지막으로 인쇄 된 날짜는 지정된 형식입니다. 그렇지 않습니까? data_string[found.end():])의 의미는 무엇입니까?

답변

1

오류 메시지는 strptime이 초 또는 마이크로 초와 같은 형식으로 지정된 것보다 많은 정보를 포함하는 문자열을 변환하고 있음을 의미합니다. 예를 들어 '14/01/2015 14 : 27 : 00.000 '을 strptime에서 %d/%m/%Y %H:%M의 형식으로 푸시하려고하면 같은 오류가 발생합니다. 필자의 예제에서이 작업을 수행하려면 strptime - %d/%m/%Y %H:%M:%S.%f과 같은 형식을 사용해야합니다.

파일이 어떤 것인지 확실하지 않지만 판다 라이브러리는 날짜/시간 이해력이 뛰어납니다. 내가 전에 정확하게 당신의 문제가 있었는지 확실하지 않지만, 내 경험으로 볼 때, 너무 많이하지 않고서는 형식을 정확하게 추측합니다.

EDIT : 실제로 팬더로 게시 한 파일 스 니펫을 읽으면 열 이름이 고유해야하므로 날짜에 열 이름을 지정하고 .1을 두 번째 열에 추가합니다. .1은 정확히 strptime에 지정된 형식으로 캡처되지 않은 date \ time 문자열의 일부분 인 것 같습니다. 그래서 아마 당신은 이미 당신의 프로세싱의 어떤 시점에서 판다를 사용하고있을 것입니다. 팬더는 기본적으로 열 이름이 datetime이 아니며, 문자열이라고 가정합니다.

+0

맞습니다! 나는 그 질문을 편집하고있다. 그래서 문제는 판다가 다른 형식의 파일을 읽는 이유입니다. 시각적으로 (필자가 Excel에서 열면) 동일하게 보입니다. 또는 아마도 새로운 질문입니다 ... – durbachit

+0

확인, 하나의 오류가있는 데이터 파일로 초가 없어 다른 형식으로 읽혀집니다. 이제는 효과가 있습니다. 감사! – durbachit