#python #datetime #pandas
#python #дата и время #pandas
Вопрос:
У меня есть фрейм данных, и столбец с датами выглядит так
date
1476329529
1476329530
1476329803
1476329805
1476329805
1476329805
Я использую это df['date'] = pd.to_datetime(df.date, format='%Y-%m-%d %H:%M:%S')
для преобразования, но получаю странный результат
date
1970-01-01 00:00:01.476329529
1970-01-01 00:00:01.476329530
1970-01-01 00:00:01.476329803
1970-01-01 00:00:01.476329805
1970-01-01 00:00:01.476329805
1970-01-01 00:00:01.476329805
Может быть, я сделал что-то не так
Ответ №1:
Это выглядит как временные метки эпохи, которые являются количеством секунд с 1 января 1970 года :
In [71]:
pd.to_datetime(df['date'], unit='s')
Out[71]:
0 2016-10-13 03:32:09
1 2016-10-13 03:32:10
2 2016-10-13 03:36:43
3 2016-10-13 03:36:45
4 2016-10-13 03:36:45
5 2016-10-13 03:36:45
Name: date, dtype: datetime64[ns]
Комментарии:
1. Привет, для меня это все еще по умолчанию 1970. В чем проблема?
2. проверьте свои единицы измерения. pd теперь по умолчанию равен наносекундам, если вы не указали единицы измерения
Ответ №2:
Возможно, что-то вроде этого:
import datetime
date = datetime.datetime.fromtimestamp(1476329529)
date
# gives
# datetime.datetime(2016, 10, 13, 5, 32, 9)
str(date) # '2016-10-13 05:32:09'