2016-05-24 1 views
-1

У меня был следующий вопрос. А именно, предположим, что у меня есть файл excel с некоторыми именами в первой строке. Затем следующее, однако, много строк - это записи с одной буквой (так «А», «В», «С» и т. Д.).Как я могу взять файл excel и преобразовать его столбцы в списки в Python?

Моя цель - извлечь столбец и внести его в список, так что, скажем, для столбца 1 список начнется в строке 2, следующая запись будет из строки 3 и так далее, до конца .

Как бы это сделать в Python?

+0

Ваше название звучит как простой транспозицией, который Excel может уже сделать, но сам вопрос описывает то, о чем я не понимаю: список для первого столбца будет содержать весь столбец (исключая строку заголовка), но в списке для последнего столбца будут отсутствовать первые записи 'row_length'? Можете ли вы предоставить ввод и вывод образцов? – TigerhawkT3

+0

@ TigerhawkT3, нет, каждый список будет содержать весь столбец, кроме первой строки. – Ryker

+0

Так что просто переставьте его в Excel? – TigerhawkT3

ответ

0

Я понял ответ. Если предположить, что файл Excel является Test.xlsx, мы можем перевести j-й столбец (за исключением первого ряда) в list_j следующим образом:

book = xlrd.open_workbook("Test.xlsx") 
sheet = book.sheet_by_index(0) 

list_j = [] 

for k in range(1,sheet.nrows): 
    list_j.append(str(sheet.row_values(k)[j-1])) 
2

Я использовал модуль под названием xlrd.

Некоторая информация о том http://www.blog.pythonlibrary.org/2014/04/30/reading-excel-spreadsheets-with-python-and-xlrd/

А вот пакет: https://pypi.python.org/pypi/xlrd

Чтобы исключить первую строку и сделать различные списки для различных столбцов вы могли бы сделать что-то вроде ...

from xlrd import open_workbook 

book = open_workbook("mydata.xlsx") 
sheet = book.sheet_by_index(0) #If your data is on sheet 1 

column1 = [] 
column2 = [] 
#... 

for row in range(1, yourlastrow): #start from 1, to leave out row 0 
    column1.append(sheet.cell(row, 0)) #extract from first col 
    column2.append(sheet.cell(row, 1)) 
    #... 

Поместите индекс-1 последней строки, которая содержит данные в заполнителе «thelastrow».

+1

Вопрос был о переносе строк и столбцов, а не о том, какие библиотеки могут читать и записывать файлы Excel. Это не отвечает на вопрос и лучше подходит для комментариев.Вы сможете оставить комментарий, если у вас есть достаточная репутация. – TigerhawkT3

+0

Спасибо, это все, что мне нужно. – Ryker