#python-3.x #pandas
#python-3.x #pandas
Вопрос:
Допустим:
>>> print(df)
location date
paris 23/02/2010
chicago 3-23-2013
...
new york 04-23-2013
helsinki 13/10/2015
В настоящее время df["date"]
находится в str
. Я хочу преобразовать столбец даты в datetime с помощью
>>> df["date"] = pd.to_datetime(df["date"])
Я бы получил ValueError из-за ParserError. Это связано с тем, что формат даты является непоследовательным (т. Е. дд / мм / гггг, затем следующий — m / dd / гггг).
Если бы я написал приведенный ниже код, он все равно не работал бы из-за того, что дата не была унифицирована, а разделители отличались:
>>> df["date"] = pd.to_datetime(df["date"], format="%d/%m/%Y")
Последний вариант, о котором я мог подумать, это написать приведенный ниже код, который заменяет все даты, которые не отформатированы как первая дата, на NaT
:
>>> df["date"] = pd.to_datetime(df["date"], errors="coerce")
Как мне преобразовать весь date
столбец в datetime, если даты не являются однородными с точки зрения разделителей и порядков дней, месяцев и лет?
Ответ №1:
используйте, apply
метод pandas
df['date'] = df.apply(lambda x: pd.to_datetime(x['date']),axis = 1)