У меня есть файл Excel с заголовком слияния, который я читаю как фрейм данных с помощью pandas. После pd.read_excel() это выглядит так:

Unnamed: 0     Pair    Unnamed: 1      Type      ...  Unnamed: 23
cabinet_name   group     pair          caller_id ...  result
value1         value1    value1        value1    ...  value1
value2         value2    value2        value2    ...  value2

Как будто у меня две строки заголовка. Одна - это строка с Безымянным, а другая - моя желаемая строка заголовка.

Это мой желаемый результат:

cabinet_name   group     pair          caller_id ...  result
value1         value1    value1        value1    ...  value1
value2         value2    value2        value2    ...  value2

Я пытаюсь удалить строку с Unnamed:

df.drop(df.index[[0]])

А также использование header=None в pd.read_excel('file.xlsx, header=None)'

Но все, что я нашел, не дало ожидаемого результата. Я искал, как удалить строки с помощью Unnamed, но все, что я нашел, это удаление столбцов .

Я тоже пробовал

df.drop(df.head(0))

Но он вернул мне:

KeyError: '[\'Unnamed: 0\' \'Pair'\ ... \'Unnamed: 23\']'

Какой лучший способ сделать это?

1
Ricky Aguilar 8 Окт 2018 в 13:18

2 ответа

Лучший ответ

Я считаю, что вам нужно пропустить первую строку по параметрам skiprows=1 или header=1, а затем удалить все столбцы только NaN:

df = (pd.read_excel('UF_AGT702-M.xlsx', skiprows=2, sheetname='Report')
        .dropna(how='all', axis=1))
2
jezrael 8 Окт 2018 в 10:52

Возьмем, к примеру, макет файла Excel ниже.

enter image description here

Чтобы исключить информацию о нижнем колонтитуле и заголовке из файла данных, вы можете использовать параметр header / skiprows для первого и skipfooter для более позднего. Вот MWE для его использования:

import pandas as pd

energy = pd.read_excel('your_excel_file.xls', header=9, skipfooter=8)

заголовок : int, список int, по умолчанию 0 Строка (с индексом 0) для использования для меток столбцов проанализированного DataFrame. Если передан список целых чисел, эти позиции строк будут объединены в MultiIndex. Используйте None, если заголовок отсутствует.

skipfooter : в виде списка Строки в конце, которые нужно пропустить (с нулевым индексом).

Дополнительные сведения см. В последней версии документации read_excel. ,

0
Miguel Rueda 13 Ноя 2019 в 10:35