2016-10-30 4 views
1

Ich lese eine CSV-Datei und alles funktioniert mit Ausnahme der Umwandlung der Werte in ganze Zahlen, da alle Werte dort Zeichenfolgen sind. Ich habe versucht, spaltenweise in einer Schleife so zu konvertieren:Python Numpy kann Strings nicht in Ganzzahlen von CSV-Datei konvertieren

counter = 0 
while counter < len(data): 
    try: 
     data[counter,0] = data[counter,0].astype(int) # ID 
     data[counter,1] = data[counter,1].astype(int) # Survived 
    except ValueError: 
     pass 
    counter = counter + 1 

Wie Sie sehen es die titanic Dataset ich versuche, mit zu arbeiten.

print (type(data[0,0]))

und Drucken der Typ eines Werts gibt mir <class 'numpy.str_'>

Wie richtig konvertiere ich die Spalten auf ganze Zahlen? Danke im Voraus!

Antwort

1

Das Problem ist, Sie versuchen, ein Element zu einem Zeitpunkt zu ändern, ohne die dtype von data zu ändern. Beachten Sie, dass data.dtype Ihnen den Typ der ndarray sagt und Sie können die eine Zelle nicht zu einer Zeit ändern - die gesamte ndarray hat einen einzigen Typ. Versuchen Sie stattdessen: data = data.astype(int). Dadurch werden alle Zeilen und alle Spalten gleichzeitig in ganze Zahlen konvertiert.

0

Ok fand ich heraus, dass pandas alle Datentypen automatisch mit folgendem Code konvertiert:

data = pandas.read_csv("filename.csv") 
Verwandte Themen