Первый вариант
Одно из возможных решений - создать MultiIndex из кортежей :
Начать с определения исходных кортежей:
tpl = [('', 'Material'), ('', 'Brand'),
('abcd.com', 'Stock'), ('abcd.com', 'Sales'), ('abcd.com', 'Leftover'),
('xyz.com', 'Stock'), ('xyz.com', 'Sales'), ('xyz.com', 'Leftover')]
Каждый кортеж содержит имя соответствующего столбца на последовательных уровнях.
Затем создайте MultiIndex:
cols = pd.MultiIndex.from_tuples(tpl)
И теперь вы можете создать свой DataFrame, вызывая, например:
df = pd.DataFrame(<your_data>, columns=cols)
Другой вариант
Второй вариант заключается в создании MultiIndex из массивов :
Исходные данные на самом деле представляют собой список , содержащий имена столбцов (также * 1026)* списки ) для каждого уровня:
arr = [[ '', '', 'abcd.com', 'abcd.com', 'abcd.com', 'xyz.com', 'xyz.com', 'xyz.com' ],
[ 'Material', 'Brand', 'Stock', 'Sales', 'Leftover', 'Stock', 'Sales', 'Leftover']]
Затем, чтобы создать MultiIndex, вызовите:
ind = pd.MultiIndex.from_arrays(arr)