#python #pandas #date #jupyter-notebook
#python #pandas #Дата #jupyter-записная книжка
Вопрос:
Я хочу сделать формат даты одинаковым для всех строк в столбце date. Например, 19-я строка имеет другой формат даты. Это только часть набора данных. Также существуют строки diff, которые имеют тот же формат. Итак, что я могу сделать, чтобы формат даты был одинаковым во всех строках?
Я пытался использовать
Covid_data['date'] = pd.to_datetime(Covid_data['date'], errors='coerce')
но он преобразует значение 19-й строки в NAT
16 Australia 2020-01-16 0.0 0.0 0.0 0.0 44648.71 25499881.0
17 Australia 2020-01-17 0.0 0.0 0.0 0.0 44648.71 25499881.0
18 Australia 2020-01-18 0.0 0.0 0.0 0.0 44648.71 25499881.0
19 Australia 2020-19-01 0.0 0.0 0.0 0.0 44648.71 25499881.0
20 Australia 2020-01-20 0.0 0.0 0.0 0.0 44648.71 25499881.0
21 Australia 2020-01-21 0.0 0.0 0.0 0.0 44648.71 25499881.0
22 Australia 2020-01-22 0.0 0.0 0.0 0.0 44648.71 25499881.0
Комментарии:
1. Да .. это из-за несовместимых форматов дат.
2. это то, что я хочу сделать. сделайте весь формат даты одинаковым во всех строках.
Ответ №1:
Попробуйте:
Covid_data['date']=pd.to_datetime(Covid_data['date'].dt.strftime('%Y/%m/%d'))
редактировать: попробуйте это
Комментарии:
1. Отображение этой ошибки AttributeError: Можно использовать только .dt accessor со значениями, подобными datetimelike
2. Я отредактировал решение. Если это все еще не работает, возможно, вам потребуется включить: errors =’принудительное использование’.
3. Та же ошибка AttributeError: можно использовать только .dt accessor со значением, подобным datetimelike
Ответ №2:
Вы могли бы попробовать использовать dateparser
пакет, но я не знаю, как вы собираетесь определять подходящий формат для таких дат, как 2020-01-08
.
import pandas as pd
import dateparser
covid_data = pd.DataFrame({"date" : ["2020-01-18", "2020-19-01"]})
covid_data["date"].apply(dateparser.parse)