2016-10-25 3 views
1

を使用してDataframeを選択するstr.startswithを実行する正しい構文を探していますが、複数の条件が必要です。 "、「M」、VをPython 3 Pandas Startswith +または

new_df = df[df['Office'].str.startswith("N", na=False)] 

文字「N」を開始することができますオフィスを返すコードを探している:

私が持っている作業コードは、文字「N」で始まるオフィスを返します。 "、または" R "である。以下は動作しないようです:

new_df = df[df['Office'].str.startswith("N|M|V|R", na=False)] 

私は何が欠けていますか?ありがとう!

df[df['Office'].str.contains("^(?:N|M|V|R)")] 

か::

+0

IIUCその後、 'new_df = DF [DFの[ 'オフィス'] str.contains(」。^N |^M |^V |^R "、na = False)]'はうまくいくはずです – EdChum

+0

EdChum、それが動作するように思われる答えとして追加してください!ありがとうございました。ニンジンはどういう意味ですか? –

+0

MaxUの答えパターンは良いです、基本的に '^'は次の文字を開始することを意味しますので、正規表現パターンをサポートしているのでここで 'contains'を使用します – EdChum

答えて

2

これを試してみてください

df[df['Office'].str.contains("^[NMVR]+")] 

デモ:

In [91]: df 
Out[91]: 
     Office 
0  No-No 
1   AAAA 
2 MicroHard 
3  Valley 
4  vvvvv 
5 zzzzzzzzzz 
6 Risk is fun 

In [92]: df[df['Office'].str.contains("^(?:N|M|V|R)")] 
Out[92]: 
     Office 
0  No-No 
2 MicroHard 
3  Valley 
6 Risk is fun 

In [93]: df[df['Office'].str.contains("^[NMVR]+")] 
Out[93]: 
     Office 
0  No-No 
2 MicroHard 
3  Valley 
6 Risk is fun 
+0

私のコメントよりももっと良い正規表現パターンを考えようとしました。 – EdChum

+0

@EdChum、ありがとうございます! – MaxU

+0

両方のコードをチェックして、動作します、ありがとう:) –

関連する問題