датафрейм конвертировать временную метку и строку - PullRequest
0 голосов
/ 29 апреля 2020

У меня есть следующий код:

df["date"] = datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S')
df['date'] = pd.to_datetime(df['date'])

Требуется 2020-04-29 14:12:32.692683, чтобы преобразовать его в строку 2020-04-29 14:12:32, а затем установить его как тип TIMESTAMP. я удаляю миллисекунды, поскольку они не нужны.

Это работает хорошо, но идея timestamp -> string -> timestamp звучит очень неэффективно.

У меня должен быть столбец даты в качестве типа TIMESTAMP, поскольку он добавляется в базу данных, и это единственный способ, при котором база данных распознает его как тип TIMESTAMP, а не VARCHAR

Есть ли лучший способ сделать это?

Ответы [ 2 ]

1 голос
/ 29 апреля 2020

используйте replace(), чтобы сразу получить правильный формат / dtype [ref] :

from datetime import datetime
import pandas as pd

df = pd.DataFrame({'date':[datetime.utcnow().replace(microsecond=0)]})

# df['date'] 
# 0   2020-04-29 15:05:06
# Name: t, dtype: datetime64[ns]
1 голос
/ 29 апреля 2020

Один вкладыш для этого:

df["date"] = datetime.strptime(str(datetime.utcnow())[:19], '%Y-%m-%d %H:%M:%S')

Возможно, лучше?

Время выполнения по времени: 0.1083306

print(timeit.timeit(stmt=myfunction, number=10000))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...