读取 Excel 文件中的表格

问题描述 投票:0回答:1

我目前正在尝试读取包含多个表格的Excel文件,但表格没有保存为表格,它们就像信息一样保存,但分为表格(不知道这是否有意义),我已经到了这样的地步我可以读取 Excel 文件,但它也会读取我不感兴趣的空单元格,我只需要读取表格。

这是我到目前为止编写的代码:

def separar_tablas(df): 
    tablas = [] 
    dfs = [] 
    tabla_actual = None

    for _, row in df.iterrows():
        for i, value in row.items():
            etiqueta = str(row[2])
    
            if pd.notnull(value):          
                if etiqueta.startswith('RuleTable'):
                    if pd.notnull(etiqueta):
                        tablas.append(etiqueta)
        
                        if tabla_actual is not None:
                            dfs.append(tabla_actual)
                    
                        tabla_actual = pd.DataFrame(columns=df.columns)
                    
                    tabla_actual = pd.concat([tabla_actual, row],axis = 1, ignore_index=True)
                    
        
    dfs.append(tabla_actual)
    return dfs

输出示例:

enter image description here

表格示例: enter image description here

python pandas excel dataframe
1个回答
0
投票

read_excel
不支持范围或名称。您必须使用 openpyxl 读取范围或表的值并从中创建 DataFrame。例如下面的代码:

path=r"c:\projects\Spikes\Book1.xlsx"

wb=load_workbook(filename=path)
ws=wb['Sheet1']
table=ws.tables["Table1"]
rng=ws[table.ref]

data_rows=[]
for row in rng:
    data_rows.append([cell.value for cell in row])

print(table.ref)
pd.DataFrame(data_rows[1:], columns=data_rows[0])

打印

>>> print(table.ref)
D6:F9
>>> pd.DataFrame(data_rows[1:], columns=data_rows[0])
    A  B       C
0   1  5  Banana
1   2  6  Potato
2  34  8  Tomato
© www.soinside.com 2019 - 2024. All rights reserved.