BUG: Preserve categorical dtypes in MultiIndex levels (#13743) by pijucha · Pull Request #13854 · pandas-dev/pandas (original) (raw)
Other places where a categorical
dtype is lost in similar circumstances.
cidx = pd.CategoricalIndex(['y', 'x'], categories=list("xyz"), ordered=True) cidx_nonunique = pd.CategoricalIndex(['y', 'x', 'y'], categories=list("xyz"), ordered=True)
concat
df = pd.DataFrame([[10, 11, 12]])
pd.concat([df, df], keys=cidx).index.levels[0]
Out[32]: Index(['y', 'x'], dtype='object')stack
with a non-unique index/multi-index:
df = pd.DataFrame([[10, 11, 12]], columns=cidx_nonunique)
df.stack().index.levels[1]
Out[35]: Index(['x', 'y', 'z'], dtype='object')get_dummies
pd.get_dummies(cidx).columns
Out[36]: Index(['x', 'y', 'z'], dtype='object')make_axis_dummies
withtransform
df = pd.DataFrame([[10, 11]], columns=cidx)
ldf = pd.Panel({'A': df, 'B': df}).to_frame()
pd.core.reshape.make_axis_dummies(panel.to_frame(), transform=lambda x: x).columns
Out[53]: Index(['x', 'y', 'z'], dtype='object')panel_index
pi = pd.core.panel.panel_index([0, 1, 2], cidx)
pi.levels[1]
Out[57]: Index(['x', 'y'], dtype='object', name='panel')- pytables:
LegacyTable.read()
No quick example yet.