Я пишу программу Python, которая импортирует квадратную матрицу из листа Excel и выполняет с ней некоторую работу NumPy. Пока что похоже, что OpenPyXl - лучший способ передать данные из файла XLSX в среду Python, но неясно, как лучше всего превратить эти данные из кортежа кортежей * ссылок на ячейки в массив фактических значений. которые находятся в таблице Excel.
* создается путем вызова sheet_ranges = wb['Sheet1'], а затем mat = sheet_ranges['A1:IQ251']
Конечно, я мог бы проверить размер кортежа, написать вложенный цикл for, проверить каждый элемент каждого кортежа в кортеже и заполнить массив.
Но разве нет лучшего способа?
Вы можете использовать свойство values, поэтому вам не нужно извлекать их вручную.
@CharlieClark, я пробовал использовать values, но, насколько я мог судить, он говорил мне, что я могу взять с собой только один скаляр за раз, а не матрицу.
См. openpyxl.readthedocs.io/en/latest/…






Как отмечалось выше, идеальным решением является использование фрейма данных pandas. Например:
import pandas as pd
dataframe = pd.read_excel("name_of_my_excel_file.xlsx")
print(dataframe)
Просто pip install pandas, а затем запустите приведенный выше код, заменив только name_of_my_excel_file полным путем к вашему файлу Excel. Затем вы можете перейти к функциям Pandas, например, для глубокого анализа ваших данных. См. Документы на здесь!
Спасибо! Это очень похоже на то, что я хочу, за исключением одного момента. Он пропускает некоторые строки и столбцы, я почти уверен, что это потому, что они содержат только нули. Есть ли способ сказать ему различать нули и пустые ячейки?
Не могли бы вы прислать мне пример ваших таблиц?
Я хочу скопировать это в Python в виде массива без пропущенных строк или столбцов. Если вы посмотрите на связанный файл Excel, две верхние строки и крайний левый столбец - все нули и отсутствуют во фрейме данных, созданном dataframe = pd.read_excel('SPM_FITS.xlsx').
Исправление: недостающие строки и столбцы не обязательно должны быть нулями. Остались все нулевые строки и столбцы, но все еще отсутствуют некоторые строки и столбцы. Сейчас все сложнее, чем я думал.
Я бы порекомендовал заглянуть в библиотеку панд. Вот ссылка на документацию pandas, которая содержит 10-минутное руководство по использованию пакета. pandas.pydata.org/pandas-docs/stable/10min.html