Как получить только дату и текстовые значения из поля с Datetime и текстовые значения в Python? - PullRequest
0 голосов
/ 29 августа 2018

Значения моего поля Python выглядят так:

Metrics_Values
2017-12-31 00:00:00
UW Value
2017-12-31 00:00:00
2017-12-31 00:00:00

Я хочу вывод ниже:

Metric_Values
12/31/2017
UW Value
12/31/2017
12/31/2017

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

Цените любые указатели. Спасибо

Ответы [ 2 ]

0 голосов
/ 29 августа 2018

Вы можете использовать strptime (который преобразует строку в объект даты и времени) и strftime (который преобразует объект даты и времени в строку) из datetime для форматирования ваших дат по вашему желанию. Вот пример:

import datetime as dt

def convert_format(date_string):
    return dt.datetime.strptime(date_string,'%Y-%m-%d %H:%M:%S').strftime('%Y/%m/%d')

Затем apply этот метод для вашего кадра данных или серии:

df.time_column.apply(lambda x: convert_format(x))

Для ввода:

0  2017-12-31 00:00:00
1  2017-12-31 00:00:00

с использованием приведенного выше кода приводит к:

0    2017/12/31
1    2017/12/31

См. Документы по strptime и strftime для получения дополнительной информации о том, как они работают: https://docs.python.org/2/library/datetime.html#strftime-strptime-behavior

0 голосов
/ 29 августа 2018

Я бы не рекомендовал использовать несколько типов данных в одной серии, но вот код, который сделает всю работу за вас:

df.Metrics_Values = df.Metrics_Values.map(lambda x: x.date() if isinstance(x, datetime.datetime) else x)
...