dataframe slice assignment failure · Issue #881 · pandas-dev/pandas (original) (raw)
In [27]: df
Out[27]:
a b c d
0 2 0.103795 -0.066523 NaN
1 3 -0.939895 -0.208760 NaN
2 9 1.968456 0.419374 NaN
3 6 -0.105170 0.162064 NaN
4 7 0.381707 2.126133 NaN
In [28]: df[df['a']==3]
Out[28]:
a b c d
1 3 -0.939895 -0.20876 NaN
In [29]: df[df['a']==2]
Out[29]:
a b c d
0 2 0.103795 -0.066523 NaN
In [30]: df[df['a']==2] = 100
---------------------------------------------------------------------------
IndexingError Traceback (most recent call last)
/home/adam/code/pandas/<ipython-input-30-f7da2453a9f6> in <module>()
----> 1 df[df['a']==2] = 100
/home/adam/code/pandas/pandas/core/frame.py in __setitem__(self, key, value)
1491 self._boolean_set(key, value)
1492 elif isinstance(key, (np.ndarray, list)):
-> 1493 return self._set_item_multiple(key, value)
1494 else:
1495 # set column
/home/adam/code/pandas/pandas/core/frame.py in _set_item_multiple(self, keys, value)
1516 self[k1] = value[k2]
1517 else:
-> 1518 self.ix[:, keys] = value
1519
1520 def _set_item(self, key, value):
/home/adam/code/pandas/pandas/core/indexing.py in __setitem__(self, key, value)
59 raise IndexingError('only tuples of length <= %d supported',
60 self.ndim)
---> 61 indexer = self._convert_tuple(key)
62 else:
63 indexer = self._convert_to_indexer(key)
/home/adam/code/pandas/pandas/core/indexing.py in _convert_tuple(self, key)
68 keyidx = []
69 for i, k in enumerate(key):
---> 70 idx = self._convert_to_indexer(k, axis=i)
71 keyidx.append(idx)
72 return tuple(keyidx)
/home/adam/code/pandas/pandas/core/indexing.py in _convert_to_indexer(self, obj, axis)
282 elif _is_list_like(obj):
283 if com._is_bool_indexer(obj):
--> 284 objarr = _check_bool_indexer(labels, obj)
285 return objarr
286 else:
/home/adam/code/pandas/pandas/core/indexing.py in _check_bool_indexer(ax, key)
417 mask = com.isnull(result)
418 if mask.any():
--> 419 raise IndexingError('cannot index with vector containing '
420 'NA / NaN values')
421
IndexingError: cannot index with vector containing NA / NaN values