Форматирование даты из кадра данных строк - PullRequest
0 голосов
/ 28 апреля 2020

У меня есть данные, которые выглядят так:

0 2/18/2020
1 9/30/2019

Каждая строка является строкой

Я хочу, чтобы она сохраняла свой тип (строка, а не дата / время), но чтобы она выглядела следующим образом:

0 2020-02-18
1 2019-09-30

Как мне добиться этого формата для всех строк в кадре данных?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 28 апреля 2020

Используйте split для разделения MM, DD и YYYY, а затем измените порядок списков в соответствии с предпочтениями. Убедитесь, что единичные числа * git месяцев и дней получают начальный ноль, прежде чем, наконец, joining списки возвращаются в одну строку, используя - вместо /:

df = pd.DataFrame({'col': ['2/18/2020', '9/30/2019']})

df['col'] = (df.col
             .apply(lambda x: x.split('/')[2:] + x.split('/')[:2])
             .apply(
                 lambda x:
                 x[0:1]
                 + (x[1:2] if len(x[1]) > 1 else ['0'+x[1]])
                 + (x[2:3] if len(x[2]) > 1 else ['0'+x[2]])
             )
             .apply(lambda x: '-'.join(x)))

df
    col
0   2020-02-18
1   2019-09-30
0 голосов
/ 28 апреля 2020

Вы можете использовать:

import pandas as pd
df = pd.DataFrame({'date': ['2/18/2020', '9/30/2019']})
df['date'] = pd.to_datetime(df['date']).dt.strftime('%Y-%m-%d')
print(df)

Результат:

         date
0  2020-02-18
1  2019-09-30
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...