Как указать соответствующие столбцы с помощью read_excelPython

Программы на Python
Ответить
Anonymous
 Как указать соответствующие столбцы с помощью read_excel

Сообщение Anonymous »

Насколько я могу судить, следующий MRE соответствует соответствующей документации:

Код: Выделить всё

import polars

df = polars.read_excel(
"/Volumes/Spare/foo.xlsx",
engine="calamine",
sheet_name="natsav",
read_options={"header_row": 2},
columns=(1,2,4,5,6,7), # columns 0 and 3 are not needed
)

print(df.head())
Проблема здесь в том, что в документации указано, что для параметра columns:

Столбцы для чтения с листа; если не указано, считываются все столбцы. Может быть задан как последовательность имен столбцов или индексов.

Очевидно, что кортеж — это последовательность. Однако выполнение этого кода приводит к следующему исключению:

Код: Выделить всё

_fastexcel.InvalidParametersError: invalid parameters: `use_columns` callable could not be called (TypeError: 'tuple' object is not callable)
Дальнейшие исследования показывают, что требуемый вызываемый объект должен возвращать bool. Итак:

Код: Выделить всё

def colspec(c):
print(type(c))
return True
Затем я изменяю вызов read_excel, включив в него columns=colspec.
Теперь программа работает без исключений и обнаруживает, что переданный параметр является классом типа встроенный.ColumnInfoNoDtype.
К сожалению, я не могу найти документацию для этого типа.
Неверная документация? Как можно использовать Polars.read_excel для загрузки только определенных столбцов?

Подробнее здесь: https://stackoverflow.com/questions/796 ... read-excel
Ответить

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

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

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

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

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