Почему формат даты и времени в таблице DataFrame Spyder и консоли python отличается - PullRequest
1 голос
/ 07 апреля 2020

Я пытаюсь изменить свой столбец не datetime на тип datetime и формат 2020-03-31. Исходный формат и тип 31-Mar-20 и объект. Я попытался изменить тип на datetime после форматирования в 2020-03-31, но каким-то образом, если я изменил его на тип datetype, в моем dataframe он всегда включает hh:mm:ss , но когда я проверяю его консоль это уже datetype и без hh:mm:ss. Почему это происходит?

Когда я проверяю это, это моя таблица DataFrame на моей вкладке Проводник переменных в Spyder

my dataframe

Это когда я проверяю это в консоли

covid.date
Out[156]: 
0    2020-03-02
1    2020-03-03
2    2020-03-04
3    2020-03-05
4    2020-03-06
5    2020-03-07

1 Ответ

2 голосов
/ 07 апреля 2020

Вы можете явно преобразовать эти datetimes в dates, извлекая часть даты с помощью:

covid['date'] = covid['date'].dt.date

Тогда они должны потерять часть time и стать datetime.date вместо datetime.

Теперь вы заметите, что столбец на самом деле имеет тип object (например, при использовании covid.info()). На самом деле pandas не имеет datetime.date в качестве стандартного типа данных. Таким образом, он обрабатывает весь столбец как хранящий object с.

Но если вы получите доступ к одному элементу, вы заметите, что это datetime.date. Так, например, вы можете делать такие вещи, как:

covid['date'].iloc[0].year
# Out: 2020

и получать значимые результаты, а не пытаться сделать это на строке.

Если вы хотите получить, например, year каждого элемента в этом столбце вам придется прибегнуть к apply (поскольку вы больше не можете звонить .dt), что-то вроде:

covid['year'] = covid['date'].apply(lambda x: x.year)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...