Was ist der Unterschied zwischen dtype und Konverter in pandas.read_csv

9

Ich weiß, dass es eine Funktion read_csv () gibt, die von Pandas unterstützt wird, um .csv-Dateien zu lesen. Seine Dokumentation ist hier

Laut Dokumentation wussten wir

  

dtype: Geben Sie den Namen oder das Diktat der Spalte ein - & gt; type, default Kein Datentyp   für Daten oder Spalten. Z.B. {'A': np.float64, 'b': np.int32}   (Nicht unterstützt mit engine = 'python')

und

  

Konverter: dict, default Kein Dict von Funktionen zum Konvertieren   Werte in bestimmten Spalten. Schlüssel können entweder Ganzzahlen oder Spalten sein   Etiketten

Ich möchte diese Funktion nutzen, ich kann anrufen pandas.read_csv('file',dtype=object) oder pandas.read_csv('file',converters=object) . Offensichtlich Konverter, sein Name kann sagen, dass Datentyp konvertiert wird, aber ich frage mich, der Fall von dtype.

Könnten Sie bitte helfen? Danke.

    
Bryan 07.12.2015, 17:02
quelle

1 Antwort

7

Der semantische Unterschied besteht darin, dass Sie mit dtype angeben können, wie die Werte behandelt werden, z. B. als numerischer Wert oder als Zeichenfolge.

Mit

Converters können Sie Ihre Eingabedaten analysieren, um sie mithilfe einer Konvertierungsfunktion in einen gewünschten dtype zu konvertieren, z. B. einen String-Wert nach datetime oder einem anderen gewünschten dtype zu analysieren.

Hier sehen wir, dass Pandas versuchen, die Typen zu schnüffeln:

%Vor%

Sie können oben sehen, dass 001 und 005 als int64 behandelt werden, aber die Datumszeichenfolge bleibt als str .

Wenn wir sagen, dass alles object ist, dann ist im Wesentlichen alles str :

%Vor%

Hier erzwingen wir die Spalte int auf str und teilen parse_dates mit, date_parser zum Parsen der Datumsspalte zu verwenden:

%Vor%

Ähnlich hätten wir die Funktion to_datetime übergeben können, um die Daten zu konvertieren:

%Vor%     
EdChum 07.12.2015, 17:06
quelle

Tags und Links