Преобразовать «числовую» строку в питон datetime - PullRequest
0 голосов
/ 12 июля 2019

У меня есть фрейм данных pandas, в котором столбец даты содержит такие значения, как: 20190709 20190710 20190708

Давайте назовем этот столбец: date

Я хочу преобразовать это в '2019-07-09 '

пробует некоторые случайные вещи, но, похоже, далеко от базы.Может ли кто-нибудь помочь мне получить правильную формулу для этого?Я предполагаю, что это довольно просто, но я трачу больше времени на догадки, чем необходимо

Вот одна вещь, которую я недавно попробовал, не уверен, что происходит

df['date2'] = datetime.strptime(df['date'].astype(str),"%Y-%m-%d")

получаю ошибкусообщение «strptime () аргумент 1 должен быть str, а не Series»

Ответы [ 2 ]

1 голос
/ 12 июля 2019

Если у вас есть согласованные цифры в дате, которые выглядят так же, как у вас, вы можете нарезать строку:

>>> s = '20190708'
>>> datestr = '-'.join([s[:4], s[4:6], s[6:] ])
>>> datetime.strptime(datestr,"%Y-%m-%d")
datetime.datetime(2019, 7, 8, 0, 0)
1 голос
/ 12 июля 2019

Это проще, чем вы думали, у Pandas довольно неплохой автоматический анализатор дат, поэтому он получит формат без предварительного анализа строки. Рабочий пример с серией:

a = ['20190709', '20190710']
a = pd.Series(a)
df['date2'] = pd.to_datetime(a)

В вашем случае это должно сделать:

df['date2'] = pd.to_datetime(df['date'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...