Как читать определенные столбцы в xlsb в Python

#python #xlsb

#python #xlsb

Вопрос:

Я пытаюсь читать электронные таблицы в файле xlsb на python, и для этого я использовал приведенный ниже код. Я нашел код в stack overflow, и я уверен, что он считывает каждый отдельный столбец в строке электронной таблицы и добавляет его в dataframe. Как я могу изменить этот код, чтобы он считывал / добавлял только определенные столбцы электронной таблицы, т.Е. Я хочу добавлять данные только в столбцах от B до D в мой фрейм данных.

Любая помощь будет оценена.

 import pandas as pd
from pyxlsb import open_workbook as open_xlsb

df = []

with open_xlsb('some.xlsb') as wb:
    with wb.get_sheet(1) as sheet:
        for row in sheet.rows():
            df.append([item.v for item in row])

df = pd.DataFrame(df[1:], columns=df[0])
  

Ответ №1:

сам pyxlsb не может этого сделать, но это выполнимо с помощью xlwings.

 import pandas as pd
import xlwings as xw
from pyxlsb import open_workbook as open_xlsb

with open_xlsb(r"W:pathfilename.xlsb") as wb:
    Data=xw.Range('B:D').value

#Creates a dataframe using the first list of elements as columns        
Data_df = pd.DataFrame(Data[1:], columns=Data[0])
  

Ответ №2:

Просто сделайте:

 import pandas as pd
from pyxlsb import open_workbook as open_xlsb

df = []

with open_xlsb('some.xlsb') as wb:
    with wb.get_sheet(1) as sheet:
        for row in sheet.rows():
            df.append([item.v for item in row if item.c > 0 and item.c < 4])

df = pd.DataFrame(df[1:], columns=df[0])
  

item.c ссылается на номер столбца, начинающийся с 0