Closed
Description
When trying to reindex with an index with duplicate values, I get the error message ValueError: Shape of passed values is (1, 20), indices imply (1, 10)
, while I expected somthing like Reindexing only valid with uniquely valued Index objects
I see this with both 0.12 and master.
An example:
In [2]: pd.__version__
Out[2]: '0.12.0-274-gc472099'
In [3]: s = pd.DataFrame(np.random.randn(10), index=[1,2,3,4,5,1,2,3,4,5])
In [4]: s
Out[4]:
0
1 -0.067753
2 -1.544545
3 0.726160
4 0.562298
5 -0.094550
1 0.753334
2 -0.893318
3 -0.275085
4 2.645206
5 -0.926170
In [5]: s.reindex(index=range(len(s)))
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-6-2085c8b16fe3> in <module>()
----> 1 s.reindex(index=range(len(s)))
c:\users\vdbosscj\scipy\pandas-joris\pandas\core\generic.pyc in reindex(self, *args, **kwargs)
1085
1086 # perform the reindex on the axes
-> 1087 return self._reindex_axes(axes, level, limit, method, fill_value, copy, takeable=takeable)._propogate_attributes(self)
1088
1089 def _reindex_axes(self, axes, level, limit, method, fill_value, copy, takeable=False):
c:\users\vdbosscj\scipy\pandas-joris\pandas\core\frame.pyc in _reindex_axes(self, axes, level, limit, method, fill_value, copy, takeable)
2268 if index is not None:
2269 frame = frame._reindex_index(index, method, copy, level,
-> 2270 fill_value, limit, takeable=takeable)
2271
2272 return frame
c:\users\vdbosscj\scipy\pandas-joris\pandas\core\frame.pyc in _reindex_index(self, new_index, method, copy, level, fill_value, limit, takeable)
2278 takeable=takeable)
2279 return self._reindex_with_indexers({0: [new_index, indexer]},
-> 2280 copy=copy, fill_value=fill_value)
2281
2282 def _reindex_columns(self, new_columns, copy, level, fill_value=NA,
c:\users\vdbosscj\scipy\pandas-joris\pandas\core\generic.pyc in _reindex_with_indexers(self, reindexers, method, fill_value, limit, copy)
1184 indexer = com._ensure_int64(indexer)
1185 new_data = new_data.reindex_indexer(index, indexer, axis=baxis,
-> 1186 fill_value=fill_value)
1187
1188 elif baxis == 0 and index is not None and index is not new_data.axes[baxis]:
c:\users\vdbosscj\scipy\pandas-joris\pandas\core\internals.pyc in reindex_indexer(self, new_axis, indexer, axis, fill_value)
2673 new_axes = list(self.axes)
2674 new_axes[axis] = new_axis
-> 2675 return self.__class__(new_blocks, new_axes)
2676
2677 def _reindex_indexer_items(self, new_items, indexer, fill_value):
c:\users\vdbosscj\scipy\pandas-joris\pandas\core\internals.pyc in __init__(self, blocks, axes, do_integrity_check, fastpath)
1563
1564 if do_integrity_check:
-> 1565 self._verify_integrity()
1566
1567 self._has_sparse = False
c:\users\vdbosscj\scipy\pandas-joris\pandas\core\internals.pyc in _verify_integrity(self)
1826 if not block.is_sparse and block.values.shape[1:] != mgr_shape[1:]:
1827 construction_error(
-> 1828 tot_items, block.values.shape[1:], self.axes)
1829 if len(self.items) != tot_items:
1830 raise AssertionError('Number of manager items must equal union of '
c:\users\vdbosscj\scipy\pandas-joris\pandas\core\internals.pyc in construction_error(tot_items, block_shape, axes)
3063 raise ValueError("Shape of passed values is %s, indices imply %s" % (
3064 tuple(map(int, [tot_items] + list(block_shape))),
-> 3065 tuple(map(int, [len(ax) for ax in axes]))))
3066
3067
ValueError: Shape of passed values is (1, 15), indices imply (1, 10)
In [6]: s.reindex(index=s.index.order())
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-5-2ce611a93f5d> in <module>()
----> 1 s.reindex(index=s.index.order())
.....
c:\users\vdbosscj\scipy\pandas-joris\pandas\core\internals.py in construction_error(tot_items, block_shape, axes)
3063 raise ValueError("Shape of passed values is %s, indices imply %s" % (
3064 tuple(map(int, [tot_items] + list(block_shape))),
-> 3065 tuple(map(int, [len(ax) for ax in axes]))))
3066
3067
ValueError: Shape of passed values is (1, 20), indices imply (1, 10)
Metadata
Metadata
Assignees
Labels
No labels