Ich benutze Pandas 'Version 0.12.0' mit Python 2.7 und habe einen Datenrahmen wie folgt:
df = pd.DataFrame({'id' : [123,512,'zhub1', 12354.3, 129, 753, 295, 610],
'colour': ['black', 'white','white','white',
'black', 'black', 'white', 'white'],
'shape': ['round', 'triangular', 'triangular','triangular','square',
'triangular','round','triangular']
}, columns= ['id','colour', 'shape'])
Die id
Serie besteht aus einigen Ganzzahlen und Zeichenfolgen. Es ist dtype
standardmäßig object
. Ich möchte den gesamten Inhalt von id
in Strings konvertieren . Ich habe es versucht astype(str)
, was die Ausgabe unten erzeugt.
df['id'].astype(str)
0 1
1 5
2 z
3 1
4 1
5 7
6 2
7 6
1) Wie kann ich alle Elemente von id
in String konvertieren ?
2) Ich werde schließlich id
für die Indizierung für Datenrahmen verwenden. Würden String-Indizes in einem Datenrahmen die Dinge verlangsamen, verglichen mit einem Integer-Index?
astype
für mich gut funktioniert, zumindest in Version 0.13.1, vielleicht hat 0.12.0 einen Fehler? Als Antwort auf Ihren zweiten Punkt ist es wahrscheinlich langsamer, da der Zeichenfolgenvergleich nicht schneller als der Ganzzahlvergleich ist, aber ich würde dies zuerst profilieren, es hängt auch von der Größe ab