Как обрабатывать заголовки файлов excel с помощью pandas / python

Я пытаюсь читать https://www.whatdotheyknow.com/request/193811/response/480664/attach/3/GCSE%20IGCSE%20results%20v3.xlsx с помощью панд.

Сохраняя его, мой скрипт

import sys import pandas as pd inputfile = sys.argv[1] xl = pd.ExcelFile(inputfile) # print xl.sheet_names df = xl.parse(xl.sheet_names[0]) print df.head() 

Однако это, похоже, не обрабатывает заголовки должным образом, поскольку это дает

  GCSE and IGCSE1 results2,3 in selected subjects4 of pupils at the end of key stage 4 Unnamed: 1 Unnamed: 2 Unnamed: 3 Unnamed: 4 Unnamed: 5 Unnamed: 6 Unnamed: 7 Unnamed: 8 Unnamed: 9 Unnamed: 10 0 Year: 2010/11 (Final) NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 1 Coverage: England NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 3 1. Includes International GCSE, Cambridge Inte... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 4 2. Includes attempts and achievements by these... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 

Все это следует рассматривать как комментарии.

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

Как вы можете получить pandas для автоматического определения, где заголовки столбцов так же, как libreoffice?

One Solution collect form web for “Как обрабатывать заголовки файлов excel с помощью pandas / python”

pandas (??) правильно обрабатывает файл и точно так, как вы его просили (их?). Вы не указали значение header , а это означает, что он по умолчанию собирает имена столбцов из 0-й строки. Первые несколько строк ячеек не являются комментариями каким-то фундаментальным способом, они просто не интересуют вас.

Просто скажите, что вы хотите пропустить несколько строк:

 >>> xl = pd.ExcelFile("GCSE IGCSE results v3.xlsx") >>> df = xl.parse(xl.sheet_names[0], skiprows=14) >>> df.columns Index([u'Local Authority Number', u'Local Authority Name', u'Local Authority Establishment Number', u'Unique Reference Number', u'School Name', u'Town', u'Number of pupils at the end of key stage 4', u'Number of pupils attempting a GCSE or an IGCSE', u'Number of students achieving 8 or more GCSE or IGCSE passes at A*-G', u'Number of students achieving 8 or more GCSE or IGCSE passes at A*-A', u'Number of students achieving 5 A*-A grades or more at GCSE or IGCSE'], dtype='object') >>> df.head() Local Authority Number Local Authority Name \ 0 201 City of london 1 201 City of london 2 202 Camden 3 202 Camden 4 202 Camden Local Authority Establishment Number Unique Reference Number \ 0 2016005 100001 1 2016007 100003 2 2024104 100049 3 2024166 100050 4 2024196 100051 School Name Town \ 0 City of London School for Girls London 1 City of London School London 2 Haverstock School London 3 Parliament Hill School London 4 Regent High School London Number of pupils at the end of key stage 4 \ 0 105 1 140 2 200 3 172 4 174 Number of pupils attempting a GCSE or an IGCSE \ 0 104 1 140 2 194 3 169 4 171 Number of students achieving 8 or more GCSE or IGCSE passes at A*-G \ 0 100 1 108 2 SUPP 3 22 4 0 Number of students achieving 8 or more GCSE or IGCSE passes at A*-A \ 0 87 1 75 2 0 3 7 4 0 Number of students achieving 5 A*-A grades or more at GCSE or IGCSE 0 100 1 123 2 0 3 34 4 SUPP [5 rows x 11 columns] 
  • Сравнение строк Pandas Dataframe и падение строк с перекрывающимися датами
  • Сравните значения Boolean Row в нескольких столбцах в Pandas, используя & / np.where () / np.any ()
  • Дата изменения DateTimeIndex
  • Групповые этикетки в barplart matplotlib с использованием Pandas MultiIndex
  • очистка больших данных с помощью python
  • Как проверить, пуст ли Pandas DataFrame?
  • написание рамки данных pandas в существующую книгу
  • Линейная регрессия - уменьшает степень свободы
  • Python - лучший язык программирования в мире.