intermittent segfault after take error · Issue #2892 · pandas-dev/pandas (original) (raw)

Was playing around and managed to get a segfault, in several versions. It's a little intermittent, and it may have to do with how things are left after an error is encountered. The same code without the the faulty take line doesn't crash for me.

import pandas as pd, sys sys.version '2.7.3 (default, Aug 1 2012, 05:16:07) \n[GCC 4.6.3]' pd.version '0.11.0.dev-14a04dd' df = pd.DataFrame({'A': {1.0: 0.0, 2.0: 6.0, 3.0: 12.0}, 'C': {1.0: 2.0, 2.0: 8.0, 3.0: 14.0}, 'B': {1.0: 1.0, 2.0: 7.0, 3.0: 13.0}}) df A B C 1 0 1 2 2 6 7 8 3 12 13 14

df.take(df.unstack()) Traceback (most recent call last): File "", line 1, in File "/usr/local/lib/python2.7/dist-packages/pandas-0.11.0.dev_14a04dd-py2.7-linux-i686.egg/pandas/core/frame.py", line 2951, in take new_index = self.index.take(indices) File "/usr/local/lib/python2.7/dist-packages/pandas-0.11.0.dev_14a04dd-py2.7-linux-i686.egg/pandas/core/index.py", line 416, in take taken = self.view(np.ndarray).take(indexer) IndexError: index out of range for array df.unstack() A 2 0 2 6 3 12 B 2 1 2 7 3 13 C 2 2 2 8 3 14 Dtype: float64 df.take(df.unstack()) Traceback (most recent call last): File "", line 1, in File "/usr/local/lib/python2.7/dist-packages/pandas-0.11.0.dev_14a04dd-py2.7-linux-i686.egg/pandas/core/frame.py", line 2951, in take new_index = self.index.take(indices) File "/usr/local/lib/python2.7/dist-packages/pandas-0.11.0.dev_14a04dd-py2.7-linux-i686.egg/pandas/core/index.py", line 416, in take taken = self.view(np.ndarray).take(indexer) IndexError: index out of range for array df.unstack() Segmentation fault (core dumped)