#python #pandas
#python #панды
Вопрос:
С помощью следующего кода для файла .xlsx с мультииндексом в столбцах:
import pandas as pd
df = pd.read_excel('Total Data.xlsx', header=[0,1], sheet_name="Control (E)")
c = df.xs('Time', drop_level=False, axis=1, level=1).columns
print(c.levels[1])
Я получаю следующий результат:
c.levels[1]
Index([' SV (Nexn)', '%CO2', '%O2', 'CO (Nexn)', 'DBP (Calc)',
'EtCO2 (Nonin)', 'HR (Calc)', 'HR (Nexn)', 'MAP (Calc)',
'MAP (Nexn)', 'MV (calc)', 'MV (calc).1', 'RR (Nonin)', 'SBP (Calc)',
'Subject', 'TV (Calc)', 'Time', 'VO2 (calc)', 'Vi'],
dtype='object')
Похоже, это как-то связано с пустым столбцом, который у меня есть, разделяющим столбцы на уровне 0 (а именно, базовый уровень и этап 1), который впоследствии также разделяет столбцы уровня 1.
Это скриншот многоиндексного заголовка файла Excel:
Почему MV (calc).1 отображается в виде столбца, когда его на самом деле нет в файле Excel, и как я могу избежать этого?
Ответ №1:
Скорее всего, у вас дважды одно и то же имя столбца в таблице Excel.
Все ключи должны быть уникальными, поэтому Pandas добавляет «.1» в конец второго вхождения повторяющегося имени столбца.
Комментарии:
1. Очевидно, что в
level 1
конкретном заголовке multiindex нет дубликатов (базовый уровень, этап 1 и т.д.), Как видно на скриншоте, который я опубликовал. Проблема, по-видимому, заключалась в пустой колонке (затемненной).2. Разве «MV (Calc)» не повторяется дважды на скриншоте?