回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我使用的是Pandas v0.20.2,我有DataFrame,如下所示:</p>
<pre><code>df = pd.DataFrame(dict(a=[0,1], b=[3,4], c=[6,7]),
index=['spam', 'ham'])
# a b c
# spam 0 3 6
# ham 1 4 7
</code></pre>
<p>我还有另一个数据帧是一个掩码:</p>
^{pr2}$
<p>我想将<code>df</code>中的值设置为<code>999</code>,其中<code>True</code>在{<cd4>}中。在</p>
<p>我认为以下方法会起作用:</p>
<pre><code>df[mask] = 999
</code></pre>
<p>但它没有。我得到以下错误:</p>
<pre><code>ValueError Traceback (most recent call last)
<ipython-input-65-503f937859ab> in <module>()
----> 1 df[mask] = 999
/home/gbra/anaconda3/envs/outer_disk/lib/python2.7/site-packages/pandas/core/frame.pyc in __setitem__(self, key, value)
2326 self._setitem_array(key, value)
2327 elif isinstance(key, DataFrame):
-> 2328 self._setitem_frame(key, value)
2329 else:
2330 # set column
/home/gbra/anaconda3/envs/outer_disk/lib/python2.7/site-packages/pandas/core/frame.pyc in _setitem_frame(self, key, value)
2364 self._check_inplace_setting(value)
2365 self._check_setitem_copy()
-> 2366 self._where(-key, value, inplace=True)
2367
2368 def _ensure_valid_index(self, value):
/home/gbra/anaconda3/envs/outer_disk/lib/python2.7/site-packages/pandas/core/generic.pyc in _where(self, cond, other, inplace, axis, level, try_cast, raise_on_error)
5096 for dt in cond.dtypes:
5097 if not is_bool_dtype(dt):
-> 5098 raise ValueError(msg.format(dtype=dt))
5099
5100 cond = cond.astype(bool, copy=False)
ValueError: Boolean array expected for the condition, not float64
</code></pre>
<p>如果你能帮上忙我会很感激的。在</p>