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_tuples may be more straightforward.
import pandas as pd
ind = pd.MultiIndex.from_tuples([], names=(u'one', u'two', u'three'))
df = pd.DataFrame(columns=['alpha', 'beta'], index=ind)
df.loc[('apple','banana','cherry'), :] = [4, 3]
df
alpha beta
one two three
apple banana cherry 4 3