Как отформатировать панды datetime? - PullRequest
0 голосов
/ 20 сентября 2018

У меня есть серия панд с обычными датами, скажем, 2017-01-01.Я пытаюсь вызвать его в лямбда-функции, но если я вызываю строку ['date'], она возвращает '2017-01-01T00: 00: 00.000000000'.Каков правильный формат для преобразования его в datetime с использованием strptime?

Оцените помощь

1 Ответ

0 голосов
/ 20 сентября 2018

Данные:

df = pd.DataFrame({'date':['2017-01-01T00:00:00.000000000','2017-01-02T00:00:00.000000000','2017-01-03T00:00:00.000000000']})

Вы можете преобразовать весь столбец с помощью pd.to_datetime.

>>> pd.to_datetime(df['date'])
0   2017-01-01
1   2017-01-02
2   2017-01-03
Name: date, dtype: datetime64[ns]

>>> df['date'][0]
Timestamp('2017-01-01 00:00:00')

Если у вас есть отдельная ячейка, вы также можетеиспользуйте pd.to_datetime

>>> pd.to_datetime('2017-01-01T00:00:00.000000000')
Timestamp('2017-01-01 00:00:00')

И затем strftime, если необходимо:

>>> pd.to_datetime('2017-01-01T00:00:00.000000000').strftime('%Y/%m/%d')
'2017/01/01'

Но преобразование отдельной ячейки быстрее с pd.Timestamp:

>>> %timeit pd.Timestamp('2017-01-01T00:00:00.000000000')
2.18 µs ± 8.56 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)

>>> %timeit pd.to_datetime('2017-01-01T00:00:00.000000000')
54 µs ± 560 ns per loop (mean ± std. dev. of 7 runs, 10000 loops each)
...