Angesichts eines Pandas df
mit verschiedenen Datentypen kann df.select_dtypes
sehr nützlich sein, nur gewünschte Spalten zu behalten oder unerwünschte Spalten für eine bestimmte Anwendung loszuwerden.Auswählen von String-Spalten in Pandas df (äquivalent zu df.select_dtypes)
Es gibt jedoch keine Möglichkeit string
dtypes mit dieser Methode zu adressieren.
Von the docs (Hervorhebung von mir):
Valueerror
Wenn beide ein- und ausschließen leer
Wenn ein- und ausschließen überlappende Elemente
Wenn jede Art von Zeichenfolge dtype wird übergeben.
und
Strings So wählen Sie das Objekt dtype verwenden müssen, aber beachten Sie, dass diese alle Objekt dtype Spalten
der Tat zurück, mit df.select_dtypes(exclude=['str'])
einen Fehler auslöst (obwohl es sich um eine TypeError
und nicht ein ValueError
wie die Dokumente behaupten) und mit df.select_dtypes(exclude=['object'])
entfernt alle object
Spalten, nicht nur string
Spalten.
ein df
wie folgt angegeben:
df = pd.DataFrame({'int_col':[0,1,2,3,4],
'dict_col':[dict() for i in range(5)],
'str_col':list('abcde')})
und bedenkt, dass
df.dtypes
ist object
für beide str_col
und dict_col
:
Was ist die beste Art und Weise auszuschließen ist oder einschließlich aller Stränge g Spalten?
Nizza, dank sein! Der Vollständigkeit halber: Der tatsächliche Einschluss oder Ausschluss von String-Spalten könnte dann mit 'df.loc [:, (df.applymap (type) == str) .all (0)]' und 'df.loc [:, (df.applymap (type)! = str) .all (0)] '. – WhoIsJack
@WhoIsJack That, oder Index für Spalten (zu meiner Antwort hinzugefügt). –