Alle Datenspalten in Pandas suchen, deren Typ float oder ein bestimmter Typ ist?

Ich habe einen Datenrahmen, df, der einige Spalten vom Typ float64 hat, während die anderen vom Typ object sind. Aufgrund der gemischten Natur kann ich nicht verwenden

df.fillna('unknown') #getting error "ValueError: could not convert string to float:"

da der Fehler bei den Spalten auftrat, deren Typ float64 ist (was für eine irreführende Fehlermeldung!)

Ich wünschte, ich könnte so etwas tun

for col in df.columns[<dtype == object>]:
    df[col] = df[col].fillna("unknown")

Meine Frage ist also, ob es einen solchen Filterausdruck gibt, den ich mit df.columns verwenden kann.

Ich denke alternativ, weniger elegant, könnte ich tun:

 for col in df.columns:
        if (df[col].dtype == dtype('O')): # for object type
            df[col] = df[col].fillna('') 
            # still puzzled, only empty string works as replacement, 'unknown' would not work for certain value leading to error of "ValueError: Error parsing datetime string "unknown" at position 0" 

Ich würde auch gerne wissen, warum im obigen Code das Ersetzen von '' durch 'unknown' für bestimmte Zellen funktioniert, aber bei einer Zelle mit dem Fehler "ValueError: Fehler beim Parsen der datetime-Zeichenfolge" unknown "an Position 0" fehlschlägt.

Danke vielmals!

Yu

Antworten auf die Frage(2)

Ihre Antwort auf die Frage