Механизм каламинирования Polars читает xlsx, строка заголовка не находится в строке 1Python

Программы на Python
Ответить
Anonymous
 Механизм каламинирования Polars читает xlsx, строка заголовка не находится в строке 1

Сообщение Anonymous »

Я новичок в Polars, и большая часть моей работы была в Pandas. Polars заинтересовал меня после того, как я обнаружил, что операция чтения около 8 тысяч строк в файле xlsx сократилась с почти 7 секунд до 0,45 секунды. Основная причина, по которой я пытаюсь использовать кармин вместо двигателя по умолчанию, - это добавленная скорость... по умолчанию около 2 секунд. Я пытаюсь преобразовать старый законсервированный скрипт pandas в Polars, но мне не удается сначала разместить строку заголовка и строки данных.
Проблема, с которой я сталкиваюсь, заключается в файле xlsx, содержащем отформатированный отчет, для которого у меня нет доступа к базовому источнику данных, и мне нужно извлечь информацию из этого отчета для использования в другом месте.
Просматривая отчет xlsx, моя строка заголовка выглядит так: в строке 7 файла XLSX, а данные начинаются в строке 8.
Столбец A можно игнорировать, поскольку он содержит только брендинг из источника отчета и некоторые другие информационные записи, не связанные с фактическими данными.
Я пытался найти способ выбрать заголовок или игнорировать первые 6 строк, но мне не удалось найти способ сделать это. ChatGPT недостаточно знаком с Calamine или Polars, чтобы я мог успешно найти решение с его помощью.
Ниже мне удалось найти способ изолировать строку заголовка в строке 1 header_row, но ни одна из операций, которые я пытался до сих пор, не увенчалась успехом по замене в основном ненужной строки заголовка, которая сейчас находится в df.
Я надеюсь выправить мою строку заголовка, и после этого я смогу выполнить оставшиеся операции и данные манипуляции.
Текущее состояние:
# Excel file path
excel_file_path = [File Path]

# Read Excel file
df = pl.read_excel(
excel_file_path,
engine="calamine", # Specify the engine as a string
)

header_row_index = 2
header_row = df.slice(header_row_index)


Выполнение print(header_row.head(1)) дает информацию ниже.
shape: (1, 32)
┌───────────┬───────────┬───────────┬───────────┬───┬───────────┬───────────┬───────────┬──────────┐
│ Milestone ┆ __UNNAMED ┆ __UNNAMED ┆ __UNNAMED ┆ … ┆ __UNNAMED ┆ __UNNAMED ┆ __UNNAMED ┆ __UNNAME │
│ Status ┆ __1 ┆ __2 ┆ __3 ┆ ┆ __30 ┆ __31 ┆ __32 ┆ D__33 │
│ Report ┆ --- ┆ --- ┆ --- ┆ ┆ --- ┆ --- ┆ --- ┆ --- │
│ --- ┆ str ┆ str ┆ str ┆ ┆ str ┆ str ┆ str ┆ str │
│ str ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ │
╞═══════════╪═══════════╪═══════════╪═══════════╪═══╪═══════════╪═══════════╪═══════════╪══════════╡
│ Subdivisi ┆ Job ┆ Lot ┆ Template ┆ … ┆ Ready for ┆ Buyer Ori ┆ Orientati ┆ Buyer │
│ on ┆ ┆ Number ┆ ┆ ┆ Orienatio ┆ entation ┆ on Accept ┆ Closed │
│ ┆ ┆ ┆ ┆ ┆ n/Manager ┆ ┆ ance ┆ │
└───────────┴───────────┴───────────┴───────────┴───┴───────────┴───────────┴───────────┴──────────┘

И print(df.head(3)):
shape: (3, 32)
┌───────────┬───────────┬───────────┬───────────┬───┬───────────┬───────────┬───────────┬──────────┐
│ Milestone ┆ __UNNAMED ┆ __UNNAMED ┆ __UNNAMED ┆ … ┆ __UNNAMED ┆ __UNNAMED ┆ __UNNAMED ┆ __UNNAME │
│ Status ┆ __1 ┆ __2 ┆ __3 ┆ ┆ __30 ┆ __31 ┆ __32 ┆ D__33 │
│ Report ┆ --- ┆ --- ┆ --- ┆ ┆ --- ┆ --- ┆ --- ┆ --- │
│ --- ┆ str ┆ str ┆ str ┆ ┆ str ┆ str ┆ str ┆ str │
│ str ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ │
╞═══════════╪═══════════╪═══════════╪═══════════╪═══╪═══════════╪═══════════╪═══════════╪══════════╡
│ Org/Subdi ┆ null ┆ null ┆ null ┆ … ┆ null ┆ null ┆ null ┆ null │
│ v: ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ │
│ [Company] ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ │
│ Homes ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ │
│ Lare… ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ │
│ Show Paus ┆ null ┆ null ┆ null ┆ … ┆ null ┆ null ┆ null ┆ null │
│ e/Hold ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ │
│ Days: Yes ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ │
│ Subdivisi ┆ Job ┆ Lot ┆ Template ┆ … ┆ Ready for ┆ Buyer Ori ┆ Orientati ┆ Buyer │
│ on ┆ ┆ Number ┆ ┆ ┆ Orienatio ┆ entation ┆ on Accept ┆ Closed │
│ ┆ ┆ ┆ ┆ ┆ n/Manager ┆ ┆ ance ┆ │
└───────────┴───────────┴───────────┴───────────┴───┴───────────┴───────────┴───────────┴──────────┘


Подробнее здесь: https://stackoverflow.com/questions/780 ... t-on-row-1
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»