擅长:python、mysql、java
<p>这几乎没有问题,除了预期的字符串是<code>'NaN'</code>而不是<code>'nan'</code>:</p>
<pre><code># data['myCol1'] = data['myCol'].apply(lambda x: 'No' if(str(x) == 'nan') else 'Yes')
data['myCol1'] = data['myCol'].apply(lambda x: 'No' if(str(x).lower() == 'nan') else 'Yes')
</code></pre>
<p>这个函数检查函数<code>np.isnan</code>的真实性,而不是调用函数,因此它总是返回<code>True</code>大小写。此外,<code>np.isnan</code>不能与非数字类型一起使用:</p>
<pre><code># data['myCol1'] = data['myCol'].apply(lambda x: 'No' if np.isnan else 'Yes')
</code></pre>
<p>这里<code>x</code>是数据帧中单个单元格中的字符串,因此<code>np.all</code>将迭代字符串中的字符,并检查每个字符的条件。由于所有字符串都没有空字符,因此始终返回<code>True</code>大小写:</p>
<pre><code># data['myCol1'] = data['myCol'].apply(lambda x: 'No' if(np.all(pd.notnull(x))) else 'Yes')
</code></pre>