Импортировать файл excel в python в виде списка

Я хочу импортировать один столбец с 10 строками в Python в виде списка.

Так что у меня, например, в excel: один, два, три, четыре, ..., десять Все, что написано в столбце A над строками 1-10.

Теперь я хочу импортировать эти ячейки в Python, чтобы получить следующий результат:

list = ['One', 'Two', 'Three', 'Four', ..., 'Ten']

Поскольку я полный новичок в программировании, я понятия не имею, как это делать. Так что подскажите, пожалуйста, самый простой способ. Все обучающие программы, которые я нашел, не дали мне желаемого результата. Спасибо

Я использую Python 2.7

Самый простой способ - использовать pandas. Выделите записи столбца и скопируйте. Затем используйте l = pd.to_clipboard().values. Обратите внимание, что вам понадобится заголовок для вашей колонки, чтобы она работала действительно легко. Также не назначайте переменные для list, это помешает вам использовать функцию list(stuff).

Alexander McFarlane 13.09.2018 18:07

Спасибо за вашу помощь! К сожалению, я получаю ошибку атрибута: объект 'module' не имеет атрибута 'to_clipboard'. Я также пробовал его с 'df = pd.read_excel (' Test.xlsx ', sheetname =' Tabelle1 ')', но затем я получаю DataFrame и не список.

Dominik Bayer 13.09.2018 18:36

Извините, это read_clipboard

Alexander McFarlane 13.09.2018 18:46
0
3
13 687
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Я не уверен, представлены ли ваши данные в формате xlsx или CSV. Если XLSX, используйте это руководство по Python Excel. Если CSV, это намного проще, и вы можете следовать приведенному ниже фрагменту кода. Если вы не хотите использовать панды, вы можете использовать библиотеку numpy. Используйте приведенный ниже пример фрагмента кода, чтобы взять верхнюю строку файла CSV:

import numpy as np
csv_file = np.genfromtxt('filepath/relative/to/your/script.csv', 
                          delimiter=',', dtype=str)
top_row = csv_file[:].tolist()

Это будет работать для файла, в котором есть только один столбец текста. Если у вас больше столбцов, используйте следующий фрагмент, чтобы получить только первый столбец. «0» указывает на первый столбец.

top_row = csv_file[:,0].tolist()

Рекомендую установить панды.

pip install pandas

а также

import pandas
df = pandas.read_excel('path/to/data.xlsx') # The options of that method are quite neat; Stores to a pandas.DataFrame object
print df.head() # show a preview of the loaded data
idx_of_column = 5-1 # in case the column of interest is the 5th in Excel
print list(df.iloc[:,idx_of_column]) # access via index
print list(df.loc[['my_row_1','my_row_2'],['my_column_1','my_column_2']]) # access certain elements via row and column names
print list(df['my_column_1']) # straight forward access via column name

(касса панды док) или

pip install xlrd

код

from xlrd import open_workbook
wb = open_workbook('simple.xls')
for s in wb.sheets():
  print 'Sheet:',s.name
  for row in range(s.nrows):
    values = []
    for col in range(s.ncols):
       values.append(s.cell(row,col).value)
    print ','.join(values)

(пример из https://github.com/python-excel/tutorial/raw/master/python-excel.pdf)

Несмотря на то, что панды - отличная библиотека, для вашей простой задачи вы можете просто использовать xlrd:

import xlrd

wb = xlrd.open_workbook(path_to_my_workbook)
ws = wb.sheet_by_index(0)
mylist = ws.col_values(0)

Обратите внимание, что list - плохое имя для переменной в Python, потому что это имя встроенной функции.

Другие вопросы по теме