Изменение того, что отображается первым в datetime в пандах

У меня такая колонка dat:

Это выглядит так:

           dat
0      2018-06-18
1      2018-06-24
2      2018-06-26
3      2018-06-27
4      2018-06-29
5      2018-12-07
6      2018-07-31
7      2018-01-08
8      2018-06-08
9      2018-07-08
10     2018-08-08
11     2018-08-27
12     2018-08-31

Я хочу, чтобы дата была похожа на '%d/%m/%Y'

b['dat']=pd.to_datetime(b['dat'],dayfirst= 1) #either this or 
b['dat']=pd.to_datetime(b['dat'],dayfirst= 0) 

или даже yearfirst = True или False выглядит одинаково и ничего не меняется.

Я знаю, что могу сделать это:

b['dat'] = b['dat'].dt.strftime('%d/%m/%Y'), но он изменяет дату и время на тип данных объекта. А с другим подходом - нет.

В python это невозможно, потому что datetimes всегда имеет одинаковую структуру YYYY-MM-DD

jezrael 10.09.2018 09:27

Он используется, если формат дат подобен 05-04-2015, тогда dayfirst=True предназначен для правильного разбора на 2015-04-05 - это день 5, а не день 4.

jezrael 10.09.2018 09:30

Так следует ли мне использовать b['dat'] = b['dat'].dt.strftime('%d/%m/%Y') , даже если он превращает datetime в объект? это неправильно, если это произойдет?

user10319541 10.09.2018 09:33

Да, вы можете изменить формат, но потеряли дату и время. Но если вам нужны даты в настраиваемом формате, это невозможно в python.

jezrael 10.09.2018 09:34

имеет ли он какие-либо негативные последствия, если станет объектом?

user10319541 10.09.2018 09:35

Конечно, вы не можете работать с функциями даты и времени, лучше всего работать с датами, а последний шаг перед записью в файл - использовать strftime

jezrael 10.09.2018 09:36

отлично. Еще кое-что. если это так, какова цель параметра формата в to.datetime, если он не действует: b['dt']=pd.to_datetime(b['dt'],format='%d%m%Y')?

user10319541 10.09.2018 09:39

Нет, ты ошибаешься. Лучше всего определить его, потому что тогда он более эффективен - to_datetime не угадывает правильный формат даты и времени.

jezrael 10.09.2018 09:43

Но это не меняет его на format = '% d% m% Y'. в этом случае он остается прежним.

user10319541 10.09.2018 09:48

Нет, он используется, если даты похожи на 05-04-2015

jezrael 10.09.2018 09:49
datetime хранит даты как целые числа. Любое конкретное форматирование, которое вы видите, - это строковое представление. См. Отмеченный дубликат для более полного объяснения.
jpp 10.09.2018 12:16
0
11
38
0

Другие вопросы по теме