Oft muss ich beim Streiten von Daten die Datentypen ändern.Ein pythischer (oder pandorable) Weg, um eine Liste von Spalten in verschiedene Datentypen zu ändern
Zum Beispiel
In [11]: import pandas as pd
In [12]: import numpy as np
In [13]: df = pd.DataFrame({'col2': {0: 'apples', 1: 'oranges', 2: 'rabbit'}, 'col1': {0: 'white', 1: 'marshmallow', 2: 'bandwagon'}}
)
In [14]: df.dtypes
Out[14]:
col1 object
col2 object
dtype: object
In [15]: for col in cols:
df[col] = df[col].astype('category')
....:
In [16]: df.dtypes
Out[16]:
col1 category
col2 category
dtype: object
Gibt es eine Pandas freundliche Art und Weise, dies zu tun - zum Beispiel unter Verwendung einer Liste Verständnis? Ich fühle, dass die for-Schleife langsam ist ...
Dies ist eine sehr häufige Sache, die ich tun muss, und ich frage mich nur, ob es ein Idiom ist mir nicht bewusst ist.
leider 'df.astype ('category')' funktioniert nicht Ich bin mir nicht sicher, ob es einen viel besseren Weg gibt, als Listenverständnis oder 'df.apply (Lambda x: x.astype ('ca Tegory ')) ', ich denke, dass Listenverstehen hier am schnellsten ist – EdChum
Wie würde man ein Listenverständnis schreiben, um das zu tun? –
'pd.concat ([df [col] .astype ('Kategorie') für col in df], Achse = 1)' aber nicht sicher, es sei denn, Sie versuchen einen großen Datensatz, wenn dieser viel schneller ist – EdChum