1

データフレーム内の列.endswith()の条件付きサブセットで or regexpを使用したい。Sender name

Dataframedfには 2 つの列Sender emailSender nameあり、特定のショップからのすべてのメールとこのショップの特定のメールを選択するためのサブセット ルールを定義するために使用します。

df = df[(df["Sender name"]=="Shop_name"]) & (df["Sender email"]=="reply@shop.com")]

  • しかし、その後buy@shop.com、 、 、などからのメールもあることがわかりました。これらすべてのメールボックスを2 番目の条件のnoreply@shop.comようにきれいに導入する方法はありますか?*@shop.com

  • を使用してみましたが、オブジェクトendswith()に対して機能させる方法がわかりませんでした。series最初に列からのすべてのメールを含むリストを作成し、送信メールサーバーがその中にあるかどうかをpd.Series.isin. しかし、もっとエレガントなものがあるのではないでしょうか?

4

2 に答える 2

2

Series.str.endswithorSeries.str.containsを正規表現とともに使用- 文字列の末尾に使用し、によって$エスケープ.します。\.

df1 = df[(df["Sender name"]=="Shop_name"]) & (df["Sender email"].str.endswith("@shop.com"))]

または:

df1 = df[(df["Sender name"]=="Shop_name"]) & (df["Sender email"].str.contains("@shop\.com$"))]
于 2019-08-03T11:47:11.633 に答える