Форматирование даты и включая дни - PullRequest
0 голосов
/ 22 ноября 2018

У меня есть CSV-файл, в котором есть столбец дат (формат D / M / Y), и я хочу преобразовать его в столбец дней.Я использовал следующий подход:

In [1]: import numpy as np
        import pandas as pd
        from pandas import Series, DataFrame

        #f = pd.read_csv(".some_file.csv")
In [2]: f=pd.DataFrame([['1/1/2013', 400, 1000]['2/1/2013', 500, 3000]], columns=['date','flights','distance'])

        f['date']=pd.to_datetime(f['date'], format='%d/%m/%y',errors='ignore')

        f['day']=f['date'].dt.weekday_name

Я ожидал колонку дня.Он появился впервые, и я тоже использовал этот стол.Однако после очистки ядра я получаю NaT в день и NaN в день.После этого дня не было.
Я что-то делаю не так?Если да, то как впервые появился день?

Спасибо за чтение.Любая помощь будет оценена.

PS CSV имеет более 330К строк.Я должен назначить день для каждой даты.

1 Ответ

0 голосов
/ 22 ноября 2018

Проблема в том, что вы неправильно указали формат datetime и скрыли ошибку, установив errors='ignore'.Вам нужно '%Y' на весь год (см. Директивы Python strftime ):

f['date'] = pd.to_datetime(f['date'], format='%d/%m/%Y', errors='coerce')

errors='coerce' даст NaN для неконвертируемых дат.Или, чтобы вызвать ошибки, просто пропустите параметр errors.

Для таких проблем рекомендуется посмотреть на f.dtypes, чтобы убедиться, что преобразование типов прошло успешно.Например, вы должны см .:

print(f['date'].dtype)
# datetime64[ns]

Вы должны не см .:

print(f['date'].dtype)
# object
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...