<p>错误意味着在比较数组中使用带链布尔条件的<code>and</code>,因此需要按位<code>AND</code>-<code>&</code>。另一个问题是在compare by<code>Married</code>列的条件周围缺少<code>()</code>。你知道吗</p>
<p>由于使用数据帧列表,因此有必要使用索引更新每个数据帧-<code>data_cleaner[i]</code>。你知道吗</p>
<p>注意:如果需要使用数字,请附加<code>1</code>和<code>0</code>,而不是<code>'1'</code>和<code>'0'</code>。你知道吗</p>
<pre><code>for i in range(len(data_cleaner)):
m1 = data_cleaner[i].Dependents.isnull()
data_cleaner[i].loc[m1 & (data_cleaner[i]['Married']=='Yes'), 'Dependents'] ='1'
data_cleaner[i].loc[m1 & (data_cleaner[i]['Married']=='No'), 'Dependents'] ='0'
</code></pre>
<p>替换为<a href="https://docs.scipy.org/doc/numpy/reference/generated/numpy.select.html" rel="nofollow noreferrer">^{<cd11>}</a>:</p>
<pre><code>for i in range(len(data_cleaner)):
m1 = data_cleaner[i].Dependents.isnull()
m2 = (data_cleaner[i]['Married']=='Yes')
m3 = (data_cleaner[i]['Married']=='No')
data_cleaner[i]['Dependents'] = np.select([m1 & m2, m1 & m3],
['1','0'],
data_cleaner[i]['Dependents'])
</code></pre>
<p>或创建另一个数据帧列表:</p>
<pre><code>out = []
for dataset in data_cleaner:
m1 = dataset.Dependents.isnull()
dataset.loc[m1 & (dataset['Married']=='Yes'), 'Dependents'] ='1'
dataset.loc[m1 & (dataset['Married']=='No'), 'Dependents'] ='0'
out.append(dataset)
</code></pre>