Was ist der kürzeste Weg, um alle Zeilen auszuwählen, in denen eine Spalte eine Zeichenfolge in einem Pandas-Dataframe enthält?Konkreter Weg, um Zeilen auszuwählen, in denen jede Spalte eine Zeichenfolge in Pandas Dataframe enthält?
Zum Beispiel, was ist der beste Weg, die folgenden Zeilen zu wählen, wo der Wert in einer Spalte eine b
enthält?
Ich bin unerfahren mit Pandas und das Beste, was ich mit so weit kommen habe, ist das recht umständlich df[df.apply(lambda r: r.str.contains('b').any(), axis=1)]
. Gibt es eine einfachere Lösung?
Kritisch, ich möchte nach einer Übereinstimmung in keine Spalten, nicht eine bestimmte Spalte zu überprüfen. Andere ähnliche Fragen, so gut ich das beurteilen kann, betreffen nur eine einzelne oder eine Liste von Spalten.
Mögliches Duplikat [Pandas + Datenrahmen - wählen Sie durch partiellen string] (http://stackoverflow.com/questions/11350770/pandas-dataframe-select-by-partial-string) – AChampion
'.str.contains 'ist eine Methode, die auf pd.Series definiert ist, so dass es so oder so zu sein scheint, dass Sie apply oder irgendeine Art von Schleife verwenden müssen. Es könnte einige Hacks geben, die bs durch NaNs ersetzen und darauf basierend fallen, aber Ihr Weg scheint klarer zu sein. – ayhan
Sie können auch 'df [df.sum (axis = 1) .str.contains ('b')]' tun, aber ich glaube nicht, dass dieses Verhalten zuverlässig ist. Ich denke auch nicht, dass dies ein Duplikat ist. – ayhan