2016-06-24 1 views
0

Я испытываю некоторое нечетное поведение, когда пытаюсь разобрать столбец даты и установить этот столбец как индекс при чтении из CSV с помощью pandas.Pandas parse date and set index- weird behavior

Файл CSV имеет как одноразовую заголовок и индекс столбец одноразового, как показано ниже (по одноразовым я имею в виду, я не хочу, чтобы использовать их)

"","X.m..d..y","fizzBuzz" 
"1","2/2/1984",0.02523659 
"2","2/3/1984",-0.03692308 
"3","2/6/1984",-0.01597444 
"4","2/7/1984",-0.006493506 
"5","2/8/1984",-0.0130719 

Теперь я могу легко прочитать ФР, а затем установить индекс затем со следующим фрагментом

import pandas as pd 
df = pd.read_csv('stackOverflow.csv',header=0, 
        names=['_throAwayindex','date','value'], usecols=['date','value'], 
        parse_dates=['date']) 
df = df.set_index('date') 
df 

, который отлично выводит желаемому результату

   value 
date     
1984-02-02 0.025237 
1984-02-03 -0.036923 
1984-02-06 -0.015974 
1984-02-07 -0.006494 
1984-02-08 -0.013072 

Но когда я пытаюсь установить индекс в вызове read_csv, я получаю странный результат. Это неправильно назвал столбец индекса

df = pd.read_csv('stackOverflow.csv',header=0, 
        names=['_throAwayindex','date','value'], usecols=['date','value'], 
        parse_dates=['date'], index_col=0) 
df 
        value 
_throAwayindex   
2/2/1984  0.025237 
2/3/1984  -0.036923 
2/6/1984  -0.015974 
2/7/1984  -0.006494 
2/8/1984  -0.013072 

И это делает все неправильно:

df = pd.read_csv('stackOverflow.csv',header=0, 
        names=['_throAwayindex','date','value'], usecols=['date','value'], 
        parse_dates=['date'], index_col=1) 
df 
       date 
date    
0.025237 2/2/1984 
-0.036923 2/3/1984 
-0.015974 2/6/1984 
-0.006494 2/7/1984 
-0.013072 2/8/1984 

Я заинтересован как в том, что происходит, а также как можно достичь желаемого результата в просто read_csv вызова без второй звонок - set_index.

+0

Стратегия с 'index_col = 0' работает для меня (Python 3.5.1, pandas 0.18.1). Появилась ошибка, возникавшая при использовании как 'parse_dates', так и' usecols', которая была исправлена ​​в 0.18.1 (https://github.com/pydata/pandas/commit/c6c201e27c7ed57a823ec7261340dfeec1e0226a) Возможно, у вас установлена ​​более старая версия ? –

+0

это. обновлен и работает отлично. Gracias. Если вы опубликуете ответ, я могу отметить его закрытым –

ответ

1

Стратегия с index_col=0 работает для меня (Python 3.5.1, pandas 0.18.1). Появилась ошибка, возникающая при использовании как parse_dates, так и usecols, которая была исправлена ​​в 0.18.1 (commit). Может быть, вы используете более старую версию?