2016-11-21 6 views
0

После загрузки данных из файла csv я устанавливаю индекс в столбец «Дата», а затем конвертирую индекс в datetime.Python Pandas обнаруживает неверный формат даты и времени

df1=pd.read_csv('Data.csv') 
    df1=df1.set_index('Date') 
    df1.index=pd.to_datetime(df1.index) 

Однако после преобразования формата даты и времени показывает, что это было неправильно:

оригинальная дата была, например, 01-10-2014 00:00:00

но Панда преобразует его в 2014-01-10 00:00:00

Как я могу получить панду уважать или признавать исходный формат дату?

Спасибо

+1

Ожидаемое поведение, формат отображения - это то, что он есть, но dtype будет 'datetime64', вы можете получить строковый формат, используя' strftime', но это даст вам строку whic h не так полезен, как 'datetime' IMO – EdChum

+0

Спасибо. Проблема заключается в том, что он распознает дату как 10 января 2014 года, а не 1 октября 2014 года. – user7188934

+0

Ну, тогда ваш вопрос скорее о правильном анализе даты, вы можете сделать' df1.index = pd.to_datetime (df1.index, format = '% m-% d-% Y% H:% M:% S') ' – EdChum

ответ

2

Ваши datestrings были интерпретированы как месяц первое, что вам нужно указать правильный format:

df1.index=pd.to_datetime(df1.index, format='%d-%m-%Y %H:%M:%S') 

так, что он не интерпретирует первую часть как месяц

In [128]: 
pd.to_datetime('01-10-2014 00:00:00', format='%d-%m-%Y %H:%M:%S') 

Out[128]: 
Timestamp('2014-10-01 00:00:00')