Читайте Excel с несколькими заголовками и безымянным столбцом - PullRequest
0 голосов
/ 11 июня 2018

Я получаю некоторые файлы Excel, например:

      USA            UK     
      plane   cars   plane  cars    
2016  2       7      1      3     # a comment after the last country
2017  3       1      8      4   

Существует неизвестное количество стран, и после последнего столбца может быть комментарий.

Когда я читаю файл Excelвот так ...

df = pd.read_excel(
    sourceFilePath,
    sheet_name = 'Sheet1',
    index_col = [0],
    header = [0, 1]
)

... У меня ошибка значения:

ValueError: Length of new names must be 1, got 2

Проблема в том, что я не могу использовать параметр usecols, потому что я не знаю, сколько странперед чтением моего файла.

Как мне прочитать такой файл?

Ответы [ 2 ]

0 голосов
/ 11 июня 2018

как насчет использования pd.read_csv?

после загрузки, затем вы можете определить, сколько столбцов у вас есть с df.columns

0 голосов
/ 11 июня 2018

Возможно, Pandas не сможет исправить ваш особый вариант использования, но вы можете написать программу, которая исправит электронную таблицу, используя openpyxl .Он имеет действительно четкую документацию, но вот обзор того, как его использовать:

import openpyxl as xl

wb = xl.load_workbook("ExampleSheet.xlsx")

for sheet in wb.worksheets:
    print("Sheet Title => {}".format(sheet.title))
    print("Dimensions => {}".format(sheet.dimensions)) # just returns a string
    print("Columns: {} <-> {}".format(sheet.min_column, sheet.max_column))
    print("Rows: {} <-> {}".format(sheet.min_row, sheet.max_row))
    for r in range(sheet.min_row, sheet.max_row + 1):
        for c in range(sheet.min_column, sheet.max_column + 1):
            if (sheet.cell(r,c).value != None):
                print("Cell {}:{} has value {}".format(r,c,sheet.cell(r,c).value))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...