#python #pandas #openpyxl
Вопрос:
У меня есть нестандартная таблица Excel с помощью openpyxl. Я проделал некоторую часть работы по преобразованию его в фрейм данных pandas. Но теперь я застрял с этой проблемой.
Я хочу выбрать только диапазон строк столбцов и получить из них данные. Например, возьмите ячейки от 4 до 12 строк и столбец от j до x. Надеюсь, вы меня понимаете.
Извините за мой английский.
Ответ №1:
Вы можете попробовать что-то в этом роде:
df = pd.read_excel('data.xlsx', skiprows=4, usecols=['J:X'], nrows=9)
Если количество строк не фиксировано, вы можете использовать свой второй столбец в качестве разделителя.
df = pd.read_excel('data.xlsx', skiprows=4, usecols=['J:X']) df = df[df.iloc[:, 1].notna()]
Комментарии:
1. спасибо , что ответили мне , я сделал это с помощью openpyxl , панды мне не подходят, потому что таблица не квадратная и есть много не относящихся к делу вещей, openpyxl поддерживает абсолютные координаты, такие как ячейки = лист[‘J5:X12]
2. Можете ли вы опубликовать свое решение в качестве ответа?
Ответ №2:
вы можете пропустить строки при чтении файла Excel во фрейм данных и сначала удалить первые 4 строки, а затем управлять фреймом данных следующим образом.
- первая строка-это чтение файла, пропуская первые 4 строки
- вторая строка удаляет диапазон строк из фрейма данных (startRow и endRow-целочисленные значения индекса строки).
- третья строка удаляет 2 столбца из фрейма данных
df = pd.read_excel('fileName.xlsx', skiprows=4) df.drop([startRow, endRow], inplace=True) df.drop(['column1', 'column2'], axis=1)