Ich habe ein seltsames Verhalten, wenn ich versuche, eine Datumsspalte zu analysieren und diese Spalte als Index zu setzen, während ich von einer CSV mit Pandas lese.Pandas analysiere Datum und setze Index- seltsames Verhalten
Die CSV-Datei hat sowohl einen Wegwerf-Header und eine Wegwerf-Index-Spalte wie unten (von Wegwerf-Ich meine, ich will nicht, sie benutzen) Jetzt
"","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
, ich kann leicht die df lesen und dann den Index gesetzt anschließend mit dem folgenden Ausschnitt
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
die perfekt gibt das gewünschte Ergebnis
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
Aber wenn ich versuche, den Index im read_csv
Aufruf einzustellen, bekomme ich ein seltsames Ergebnis. Diese Fehl Namen der Indexspalte
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
Und das tut alles falsch:
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
Ich habe Interesse sowohl in dem, was passiert ist und wie könnte auch das gewünschte Ergebnis in nur dem read_csv
Anruf erreichen, ohne der zweite Anruf an set_index
.
Die Strategie mit 'index_col = 0' funktioniert für mich (Python 3.5.1, Pandas 0.18.1). Es gab einen Fehler, der bei der Verwendung von 'parse_dates' und' usecols' auftrat, die in 0.18.1 behoben wurden (https://github.com/pydata/pandas/commit/c6c201e27c7ed57a823ec7261340dfeec1e0226a). Vielleicht hast du eine ältere Version ? –
das ist es. aktualisiert und es funktioniert gut. Gracias. Wenn du die Antwort postest, kann ich sie als geschlossen markieren –