Ich habe eine Pandas DataFrame (df
), die ich für ein Semikolon suchen muss. Ich versuchte zunächst, mitPandas - Suche nach einem Zeichen in einem DataFrame
semicolon_check = df.to_string().__contains__(';')
,
aber es ist sehr langsam und bei großen Datenrahmen Ich laufe in einen Speicherfehler. Dann habe ich versucht, eine Schleife über Spalten mit .str
, aber nicht alle Spalten sind Strings so, wenn ich eine numerische Spalte erreichte ich einen Fehler empfangen
AttributeError: Can only use .str accessor with string values, which use np.object_ dtype in pandas
so landete ich mit diesem Code auf
for col in df.columns: if df[col].dtype == 'O': if df[col].str.contains(r';').any(): print 'found in ' + col
Gibt es einen einfacheren Weg, um das Ziel zu erreichen? Obiges funktioniert, obwohl es wie erwartet funktioniert, für eine so elementare Aufgabe wie die Wertesuche etwas zu viel Aufwand.
Dies ist möglicherweise nicht der effizienteste Weg, aber es läuft sicher. – Abdou