#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