Ich lese in einer CSV-Datei mit mehreren Datetime-Spalten. Ich müsste die Datentypen beim Einlesen der Datei festlegen, aber die Datumszeiten scheinen ein Problem zu sein. Zum Beispiel:
headers = ['col1', 'col2', 'col3', 'col4']
dtypes = ['datetime', 'datetime', 'str', 'float']
pd.read_csv(file, sep='\t', header=None, names=headers, dtype=dtypes)
Beim Ausführen wird ein Fehler ausgegeben:
TypeError: Datentyp "datetime" wird nicht verstanden
Das Konvertieren von Spalten nachträglich über pandas.to_datetime () ist keine Option. Ich kann nicht wissen, welche Spalten Datetime-Objekte sind. Diese Informationen können sich ändern und stammen von allem, was meine dtypes-Liste informiert.
Alternativ habe ich versucht, die CSV-Datei mit numpy.genfromtxt zu laden, die dtypes in dieser Funktion festzulegen und dann in einen pandas.dataframe zu konvertieren, aber es verstümmelt die Daten. Jede Hilfe wird sehr geschätzt!
pandas.core.datetools.to_datetime
ist veraltet, verwenden Siepd.datetools.to_datetime
stattdessen. wiedate_parser = pd.to_datetime
converters
Parameter, in dem Sie angeben können, welche Spalten welche Konverter haben. parse_dates ist hilfreich und verarbeitet schlechte Daten, ist jedoch langsamer, da jeder Wert getestet und abgeleitet wird. gist.github.com/gjreda/7433f5f70299610d9b6bEs gibt einen
parse_dates
Parameterread_csv
, mit dem Sie die Namen der Spalten definieren können, die als Datum oder Uhrzeit behandelt werden sollen:quelle
Sie können versuchen, tatsächliche Typen anstelle von Zeichenfolgen zu übergeben.
Aber es wird wirklich schwierig sein, dies zu diagnostizieren, ohne dass Sie Daten basteln müssen.
Und wirklich, Sie möchten wahrscheinlich, dass Pandas die Daten in TimeStamps analysieren, also könnte das sein:
quelle
Ich habe versucht, die Option dtypes = [datetime, ...] zu verwenden, aber
Ich habe folgenden Fehler festgestellt:
Die einzige Änderung, die ich vornehmen musste, war, datetime durch datetime.datetime zu ersetzen
quelle
AttributeError: type object 'datetime.datetime' has no attribute 'datetime'