"AttributeError: _ref_locs" while assigning non-contiguous MultiIndex columns · Issue #4686 · pandas-dev/pandas (original) (raw)
Hitting an exception with the following code on 0.12.0 (and current master). Copied 0.11.0 behavior for reference, but feel free to reject if assignment to non-contiguous columns of a MultiIndex using a partial label is illegal/unsupported.
import numpy as np
import pandas as pd
df = pd.DataFrame(
np.ones((1, 3)),
columns=pd.MultiIndex.from_tuples(
[('A', '1'), ('B', '1'), ('A', '2')]
),
dtype=object
)
print 'Before:'
print df.dtypes
df['A'] = df['A'].astype(float)
print 'After:'
print df.dtypes
0.11.0 output:
Before:
A 1 object
B 1 object
A 2 object
dtype: object
After:
A 1 float64
B 1 object
A 2 float64
dtype: object
0.12.0 output:
Before:
A 1 object
B 1 object
A 2 object
dtype: object
Traceback (most recent call last):
File "repro.py", line 15, in <module>
df['A'] = df['A'].astype(float)
File "/home/gmd/ENV/pandas-master/lib/python2.7/site-packages/pandas-0.12.0_270_ge3c71f2-py2.7-linux-i686.egg/pandas/core/frame.py", line 1929, in __setitem__
self._set_item(key, value)
File "/home/gmd/ENV/pandas-master/lib/python2.7/site-packages/pandas-0.12.0_270_ge3c71f2-py2.7-linux-i686.egg/pandas/core/frame.py", line 1977, in _set_item
NDFrame._set_item(self, key, value)
File "/home/gmd/ENV/pandas-master/lib/python2.7/site-packages/pandas-0.12.0_270_ge3c71f2-py2.7-linux-i686.egg/pandas/core/generic.py", line 798, in _set_item
self._data.set(key, value)
File "/home/gmd/ENV/pandas-master/lib/python2.7/site-packages/pandas-0.12.0_270_ge3c71f2-py2.7-linux-i686.egg/pandas/core/internals.py", line 2448, in set
self._reset_ref_locs()
File "/home/gmd/ENV/pandas-master/lib/python2.7/site-packages/pandas-0.12.0_270_ge3c71f2-py2.7-linux-i686.egg/pandas/core/internals.py", line 1644, in _reset_ref_locs
self._rebuild_ref_locs()
File "/home/gmd/ENV/pandas-master/lib/python2.7/site-packages/pandas-0.12.0_270_ge3c71f2-py2.7-linux-i686.egg/pandas/core/internals.py", line 1652, in _rebuild_ref_locs
if self._ref_locs is not None:
AttributeError: _ref_locs
Thanks!