914 Stimmen

Pandas DataFrame nach Teilstring-Kriterien filtern

Ich habe ein Pandas DataFrame mit einer Spalte von String-Werten. Ich muss Zeilen basierend auf partiellen String-Übereinstimmungen auswählen.

So etwas wie diese Redewendung:

re.search(pattern, cell_in_question) 

einen booleschen Wert zurückgibt. Ich bin vertraut mit der Syntax von df[df['A'] == "hello world"] aber ich kann keine Möglichkeit finden, dasselbe mit einer teilweisen Zeichenkettenübereinstimmung zu tun, z. B. 'hello' .

2voto

xpeiro Punkte 643

Es gibt bereits Antworten, die die gewünschte Funktion erfüllen, trotzdem möchte ich den allgemeinsten Weg aufzeigen:

df.filter(regex=".*STRING_YOU_LOOK_FOR.*")

Auf diese Weise erhalten Sie die Spalte, die Sie suchen, unabhängig davon, wie sie geschrieben ist.

(Natürlich müssen Sie für jeden Fall den richtigen Regex-Ausdruck schreiben)

2voto

GenDemo Punkte 671

Meine 2c wert:

Ich habe Folgendes getan:

sale_method = pd.DataFrame(model_data['Sale Method'].str.upper())
sale_method['sale_classification'] = \
    np.where(sale_method['Sale Method'].isin(['PRIVATE']),
             'private',
             np.where(sale_method['Sale Method']
                      .str.contains('AUCTION'),
                      'auction',
                      'other'
             )
    )

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X