이 형식을 개체로 2020-11-18 10 : 36 : 29.772234 +0000 UTC, 날짜 시간으로 변환하고 싶습니다.

Nov 23 2020

2020-11-20 23:07:59.381081 +0000 UTC

팬더로 csv 파일을 읽고 있으며 데이터 프레임에 개체 인 타임 스탬프 열이 있습니다. 날짜 시간으로 변환 할 수없고 +0000 UTC를 형식으로 읽을 수 없습니다.

다음을 시도했습니다.

datetimeObj = datetime.strptime('2020-11-21 22:16:25.389601 +0000 UTC', '%Y-%m-%d %H:%M:%S.%f %Z')

하지만 % Z는 나에게 오류를주고 있습니다. 파이썬과 팬더 세계의 초보자를위한 조언이 있습니까?

답변

3 LorenaGil Nov 23 2020 at 04:10

% Z 앞에 % z도 추가해야합니다.

  • % z는 + HHMM 또는 -HHMM 형식의 오프셋을 나타냅니다.
  • % Z는 시간대 이름을 나타냅니다.

이 시도:

datetime_object = datetime.strptime('2020-11-20 23:07:59.381081 +0000 UTC', '%Y-%m-%d %H:%M:%S.%f %z %Z')
1 MrFuppes Nov 23 2020 at 17:31

pandas DataFrame에 해당 형식의 datetime 문자열이 있다고 가정하면 +0000since pd.to_datetimewo n't parse +0000and UTC at the same time 을 제거하는 것이 좋습니다 .

import pandas as pd

df = pd.DataFrame({'timestamp':["2020-11-20 23:07:59.381081 +0000 UTC"]})

df['datetime'] = pd.to_datetime(df['timestamp'].str.replace(" +0000", "", regex=False))

# df['datetime']
# 0   2020-11-20 23:07:59.381081+00:00
# Name: datetime, dtype: datetime64[ns, UTC]

왜 그냥 벗기지 UTC않습니까? UTC 오프셋 +0000과는 대조적으로 분명합니다. +0000은 타임 스탬프에 표시된 시간에 UTC + 0이있는 시간대에서 발생할 수도 있습니다.