datetime.fromtimestamp TypeError - PullRequest
       107

datetime.fromtimestamp TypeError

0 голосов
/ 23 апреля 2020

Я пытаюсь преобразовать эпоху (unixtime) в формат даты и времени (UT C), и у меня есть код для этого;

from datetime import datetime, timezone
vmmR817['datetime_new_utc']=datetime.fromtimestamp(vmmR817['epoch'],timezone.utc).strftime('%Y-%m-%d %H:%M:%S')
datetime.fromtimestamp(1563915600,timezone.utc).strftime('%Y-%m-%d %H:%M:%S')

Код отлично работает для отдельной эпохи (1563915600), но не для всей серии (vmmR817 ['epoch']) из кадра данных. Возвращается следующая ошибка

Ошибка типа: невозможно преобразовать серию в

Df выглядит так:

enter image description here

Временной ряд работает от:

datetime.fromtimestamp(1525039200,timezone.utc).strftime('%Y-%m-%d %H:%M:%S')
Out[93]: '2018-04-29 22:00:00'

до

datetime.fromtimestamp(1563915600,timezone.utc).strftime('%Y-%m-%d %H:%M:%S')
Out[92]: '2019-07-23 21:00:00'

Есть предложения?

Заранее спасибо!

1 Ответ

0 голосов
/ 24 апреля 2020

datetime.fromtimestamp ожидает скалярного ввода; но вы передаете серию pandas (столбец из кадра данных). Это не сработает. Просто используйте pd.to_datetime для преобразования всего столбца:

import pandas as pd
# example df:
df = pd.DataFrame({'epoch': [1563915600]})
# convert the epoch column:
df['epoch'] = pd.to_datetime(df['epoch'], unit='s')
# 0   2019-07-23 21:00:00
# Name: t, dtype: datetime64[ns]
...