<p>您也可以使用<code>pandas.Series.str.match</code></p>
<pre><code>df[df.Service.str.match('CWS|Drive')]
Created UserID Service
0 1/1/2016 a CWS
2 3/5/2016 a Drive
</code></pre>
<hr/>
<p><strong>其他口味</strong><br/>
<em>为了好玩!!</em></p>
<p><strong><code>numpy</code><em/></strong>-fi</p>
^{pr2}$
<p><strong>添加<code>numexpr</code></strong></p>
<pre><code>import numexpr as ne
s = df.Service.values
c1 = s == 'CWS'
c2 = s == 'Drive'
df[ne.evaluate('c1 | c2')]
</code></pre>
<hr/>
<p><strong>时间</strong><br/>
<em><code>isin</code>是赢家!<code>str.match</code>是输家:-(</em></p>
<pre><code>np.random.seed([3,1415])
df = pd.DataFrame(dict(
Service=np.random.choice(['CWS', 'Drive', 'Other', 'Enhancement'], 100000)))
%timeit df[(df.Service == "CWS") | (df.Service == "Drive")]
%timeit df[df.Service.isin(["CWS", "Drive"])]
%timeit df.query('Service == "CWS" | Service == "Drive"')
%timeit df.query('Service == ["Other", "Drive"]')
%timeit df.query('Service in ["Other", "Drive"]')
%timeit df[df.Service.str.match('CWS|Drive')]
100 loops, best of 3: 16.7 ms per loop
100 loops, best of 3: 4.46 ms per loop
100 loops, best of 3: 7.74 ms per loop
100 loops, best of 3: 5.77 ms per loop
100 loops, best of 3: 5.69 ms per loop
10 loops, best of 3: 67.3 ms per loop
%%timeit
s = df.Service.values
c1 = s == 'CWS'
c2 = s == 'Drive'
df[c1 | c2]
100 loops, best of 3: 5.47 ms per loop
%%timeit
import numexpr as ne
s = df.Service.values
c1 = s == 'CWS'
c2 = s == 'Drive'
df[ne.evaluate('c1 | c2')]
100 loops, best of 3: 5.65 ms per loop
</code></pre>