Не стандартный фрейм данных Excel для pandas

#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)