Я новичок в Polars, и большая часть моей работы была в Pandas. Компания Polars заинтересовала меня после того, как я обнаружил, что операция чтения около 8 тысяч строк в файле xlsx сократилась с почти 7 секунд до 0,45 секунды. Основная причина, по которой я пытаюсь использовать кармин вместо двигателя по умолчанию, - это добавленная скорость... по умолчанию около 2 секунд. Я пытаюсь преобразовать старый законсервированный скрипт pandas в Polars, но мне приходится сначала получить строку заголовка и строки данных.
Проблема, с которой я столкнулся, - это файл xlsx. который содержит отформатированный отчет, к исходному источнику данных которого у меня нет доступа, и мне нужно извлечь информацию из этого отчета для дальнейшего использования.
Просмотр файла xlsx В отчете моя строка заголовка находится в строке 7 файла XLSX, а данные начинаются в строке 8.
Столбец A можно игнорировать, поскольку он содержит только фирменную символику из источника отчета и некоторые другие информационные записи, не связанные с фактическими данными.
Я пытался найти способ выбрать заголовок или игнорировать первые 6 строк, но мне не удалось найти способ сделать это. ChatGPT недостаточно знаком с Calamine или Polars, чтобы я мог успешно найти решение с его помощью.
Ниже мне удалось найти способ изолировать строку заголовка в строке 1 заголовка_строки, но никакие операции, которые я пытался до сих пор, не увенчались успехом по замене в основном ненужной строки заголовка, которая сейчас находится в 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