I would like to create an empty DataFrame with a MultiIndex before assigning rows to it. I already found that empty DataFrames
Using pd.MultiIndex.from_arrays
allows for a slightly more concise solution when defining the index explicitly:
import pandas as pd
ind = pd.MultiIndex.from_arrays([[]] * 3, names=(u'one', u'two', u'three'))
df = pd.DataFrame(columns=['alpha', 'beta'], index=ind)
df.loc[('apple','banana','cherry'), :] = [4, 3]
alpha beta
one two three
apple banana cherry 4 3