Python Почему pd.to_datetime возвращает формат отметки времени? - PullRequest
1 голос
/ 08 марта 2020

В Python Я пытаюсь отформатировать свой столбец даты в кадре данных, чтобы создать формат объекта. Вместо этого я получаю формат Timestamp.

In:

X = []

for row in data:
   date = pd.to_datetime(row[0], format='%Y/%m/%d')
   X.append(date)

print(X)

Out:

[Timestamp('2008-01-02 00:00:00'),
 Timestamp('2009-01-02 00:00:00'),
 Timestamp('2010-01-04 00:00:00'),
 Timestamp('2011-01-03 00:00:00'),
 Timestamp('2012-01-03 00:00:00'),
 Timestamp('2013-12-02 00:00:00'),
 Timestamp('2014-12-01 00:00:00'),
 Timestamp('2015-01-02 00:00:00'),
 Timestamp('2016-01-04 00:00:00'),
 Timestamp('2017-01-03 00:00:00'),
 Timestamp('2018-01-02 00:00:00'),
 Timestamp('2019-01-02 00:00:00'),
 Timestamp('2020-01-02 00:00:00')]

Как я могу изменить плавающий объект вместо Timestamp? Должен ли я использовать datetime.strptime вместо

Ответы [ 2 ]

2 голосов
/ 08 марта 2020

Если вам нужны даты в формате нумерации c, используйте:

import datetime

dt = datetime.datetime.strptime('2020/03/08', '%Y/%m/%d')
timestamp = dt.replace(tzinfo=datetime.timezone.utc).timestamp()

Даты будут отображаться как UNIX отметки времени (тип с плавающей запятой)

Редактировать: если вы хотите используйте pandas, см. также pandas дата / время до unix отметка времени в секундах

1 голос
/ 08 марта 2020

Вам не нужно l oop по всему фрейму данных, чтобы преобразовать datetime в float, есть лучший способ выполнить sh this,

Попробуйте это :

df["date"] = pd.to_datetime(df["date"], format="%Y/%m/%d").astype("datetime64").astype(int).astype(float)
...