2017-11-15 1 views
2
손실

내 원 데이터 이런 ISO8601 포맷 타임 스탬프 열 가지고판다 to_datetime는 시간대

"2017-07-25T06 : 00 : 02 + 02 : 00

된 버젼 데이터가 CSV 형식으로되어 있으면 object/string으로 읽혀집니다. 따라서 저는 이것을 datetime으로 변환합니다.

import pandas pd 
df['time'] = pd.to_datetime(df['time'], utc=False) 

#df['time'][0] 
df['time'][0].isoformat() 

불행히도이 결과는 UTC 시간 소인이되고 시간대는 손실됩니다. 예를 들어 df [ '시간'] [0] .tzinfo이 설정되지 않았습니다.

타임 스탬프 ('2017년 7월 25일 4시 0분 2초')

'2017-07-25T04 : 00 : 02'나는 방법을 찾고 있어요

각 시간대 개체에 표준 시간대 정보를 보관하십시오. 그러나이 정보는 원시 데이터의 ISO8601 시간대 오프셋에 이미 포함되어 있으므로 CEST (Central European Summer Time)로 다시 설정하지 않아도됩니다. 어떤 생각을 어떻게 할 것인가?

답변

3

그래서 여기 어떻게 해결할 수 있습니다.

Timezones and Python에 대한 유용한 기사가 나와 해결책을 찾는데 도움이되었습니다. 그것은 ISO8601 Python packages에 의존합니다.

import iso8601 

times = ['2017-07-25 06:00:02+02:00', 
     '2017-07-25 08:15:08+02:00', 
     '2017-07-25 12:08:00+02:00', 
     '2017-07-25 13:10:12+02:00', 
     '2017-07-25 15:11:55+02:00', 
     '2017-07-25 16:00:00+02:00' 
     ] 

df = pd.DataFrame(times, columns=['time']) 
df['time'] = df['time'].apply(iso8601.parse_date) 
df['time'][0] 

다음 출력을 생성하고 표준 시간대 정보를 유지합니다.

소인 ('2017년 7월 25일 06 : 00 : 02 + 0200', TZ = '+ 2시')