Изменение того, что отображается первым в 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
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
11
38
0

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