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 idSerie besteht aus einigen Ganzzahlen und Zeichenfolgen. Es ist dtypestandardmäßig object. Ich möchte den gesamten Inhalt von idin 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 idin String konvertieren ?
2) Ich werde schließlich idfür die Indizierung für Datenrahmen verwenden. Würden String-Indizes in einem Datenrahmen die Dinge verlangsamen, verglichen mit einem Integer-Index?
astypefü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