Вы можете создать MultiIndex
для столбцов, специально создав индекс и затем присвоив его столбцам отдельно от чтения в данных.
Я буду использовать пример из ссылки , которую вы указали .Первый метод заключается в создании MultiIndex при создании кадра данных:
df = pd.DataFrame({('A',1,'desc A'):[1,2,3],('B',2,'desc B'):[4,5,6]})
df.columns.names=['NAME','LENGTH','DESCRIPTION']
df
NAME A B
LENGTH 1 2
DESCRIPTION desc A desc B
0 1 4
1 2 5
2 3 6
Как уже говорилось, это , а не , что вы ищете.Вместо этого вы можете создать фрейм данных (например, из вашего файла), а затем создать MultiIndex
из набора списков и назначить его столбцам:
df = pd.DataFrame({'desc A':[1,2,3], 'desc B':[4,5,6]})
# Output
desc A desc B
0 1 4
1 2 5
2 3 6
# Create a multiindex from lists
index = pd.MultiIndex.from_arrays((['A', 'B'], [1, 2], ['desc A', 'desc B']))
# Assign to the columns
df.columns = index
# Output
A B
1 2
desc A desc B
0 1 4
1 2 5
2 3 6
# Name the columns
df.columns.names = ['NAME','LENGTH','DESCRIPTION']
# Output
NAME A B
LENGTH 1 2
DESCRIPTION desc A desc B
0 1 4
1 2 5
2 3 6
Существуют другие способы созданияMultiIndex
, например, from_tuples
и from_product
.Вы можете прочитать больше о Multi Indexes в документации .