擅长:python、mysql、java
<p>我并不是百分之百地解释原因(实际上是来这里寻找答案的),但这也有效,不需要替换所有的nan值。</p>
<pre><code>import pandas as pd
import numpy as np
df = pd.DataFrame([["foo1"], ["foo2"], ["bar"], [np.nan]], columns=['a'])
newdf = df.loc[df['a'].str.contains('foo') == True]
</code></pre>
<p>使用或不使用<code>.loc</code>。</p>
<p>我不知道为什么这样做,因为我知道当你用方括号进行索引时,panda会将方括号内的内容作为<code>True</code>或<code>False</code>进行求值。我不明白为什么把括号里的短语变成“额外布尔值”会有任何效果。</p>