Closed
Description
Since reindex and ix should behave the same way I guess since
"Some might conclude that ix and reindex are 100% equivalent based on this. This is indeed true except in the case of integer indexing."
The docstring also doesn't give any hint that one should use a unique index.
In [35]:
import pandas as pd
In [36]:
df = pd.DataFrame([('a',2), ('a',3), ('b',4)], columns = ['A', 'B'])
df2 = pd.DataFrame([('a',2), ('a',3), ('d',4)], columns = ['A', 'B'])
df.set_index('A', inplace=True)
df2.set_index('A', inplace=True)
Out[36]:
B
A
a 2
a 3
d 4
In [37]:
df.ix[df.index.intersection(df2.index)]
Out[37]:
B
A
a 2
a 3
In [38]:
df.reindex(df.index.intersection(df2.index))
---------------------------------------------------------------------------
Exception Traceback (most recent call last)
<ipython-input-38-ad4829c75d14> in <module>()
----> 1 df.reindex(df.index.intersection(df2.index))
/usr/local/lib/python2.7/dist-packages/pandas-0.9.0-py2.7-linux-x86_64.egg/pandas/core/frame.pyc in reindex(self, index, columns, method, level, fill_value, limit, copy)
2244 if index is not None:
2245 frame = frame._reindex_index(index, method, copy, level,
-> 2246 fill_value, limit)
2247
2248 return frame
/usr/local/lib/python2.7/dist-packages/pandas-0.9.0-py2.7-linux-x86_64.egg/pandas/core/frame.pyc in _reindex_index(self, new_index, method, copy, level, fill_value, limit)
2320 limit=None):
2321 new_index, indexer = self.index.reindex(new_index, method, level,
-> 2322 limit=limit)
2323 return self._reindex_with_indexers(new_index, indexer, None, None,
2324 copy, fill_value)
/usr/local/lib/python2.7/dist-packages/pandas-0.9.0-py2.7-linux-x86_64.egg/pandas/core/index.pyc in reindex(self, target, method, level, limit)
825 else:
826 indexer = self.get_indexer(target, method=method,
--> 827 limit=limit)
828 return target, indexer
829
/usr/local/lib/python2.7/dist-packages/pandas-0.9.0-py2.7-linux-x86_64.egg/pandas/core/index.pyc in get_indexer(self, target, method, limit)
746
747 if not self.is_unique:
--> 748 raise Exception('Reindexing only valid with uniquely valued Index '
749 'objects')
750
Exception: Reindexing only valid with uniquely valued Index objects