Pandas Text entspricht wie SQL LIKE?

9

Gibt es eine Möglichkeit, etwas Ähnliches zu tun, um SQL Syntax in einer Pandafrag-DataFrame-Spalte, so dass sie eine Liste von Indizes oder eine Liste von Booleschen Werten zurückgibt, die für die Indizierung des Datenrahmens verwendet werden können? Ich möchte beispielsweise alle Zeilen vergleichen können, in denen die Spalte mit 'prefix_' beginnt, ähnlich wie WHERE <col> LIKE prefix_% in SQL.

    
naught101 10.03.2014, 03:25
quelle

2 Antworten

8

Sie können die Serienmethode str.startswith (was eine Regex benötigt):

%Vor%

Sie können dasselbe auch mit str.contains (mit einer Regex):

%Vor%

Sie können also df[col].str.startswith ...

eingeben

Siehe auch den SQL-Vergleichsabschnitt der Dokumentation.

Hinweis: (wie von OP angegeben) standardmäßig NaNs propagieren (und damit einen Indexierungsfehler verursachen, wenn Sie das Ergebnis als boolesche Maske verwenden möchten), verwenden wir dieses Flag, um zu sagen, dass NaN auf False abbilden sollte.

%Vor%     
Andy Hayden 10.03.2014, 03:33
quelle
1

können Sie

verwenden %Vor%     
sushmit 25.05.2017 15:46
quelle