Closed
Description
related #4805
It would be nice to allow automatic conversion to a MultiIndex when a dict
with tuple keys is passed into the DataFrame
constructor. Here's what currently happens:
from pandas import Index, DataFrame
from numpy.random import rand
import itertools as itools
d = {(i, j): rand(10) for i, j in itools.product(xrange(3), repeat=2)}
df = DataFrame(d)
assert type(df.columns) == Index
The same issue shows up in pd.concat
when you pass in a dict
of sequences (lists and ndarrays and friends) and axis=1
, however if you have a dict
of DataFrames
the columns keys are converted to a MultiIndex. E.g.,
from pandas import MultiIndex
d = {(i, j): DataFrame(rand(10, 2), columns=['a', 'b']) for i, j in itools.product(xrange(3), repeat=2)}
df = pd.concat(d, axis=1)
assert type(df.columns) == MultiIndex