pandas 如何从包含多个表的Excel工作表中读取数据框?

but5z9lq  于 2023-04-04  发布在  其他
关注(0)|答案(1)|浏览(125)

我有一个Excel工作表,其中包含多个表,每个表都有不同的列名。
下图显示了表格在工作表中的显示方式:

如果我想把汇总表读入一个pandas dataframe,除了手动指定要读取的行和列值之外,该怎么做?

t8e9dugd

t8e9dugd1#

以下是scikit-image的一个选项(* 受到@Roshan的answer * 的高度启发):

import numpy as np
import pandas as pd
​
#pip install scikit-image
from skimage.measure import label, regionprops
​
df = pd.read_excel("wbook.xlsx", sheet_name="Sheet1", header=None)
​
larr = label(np.array(df.notnull()).astype("int"))
​
list_dfs = []

for s in regionprops(larr):
    sub_df = (df.iloc[s.bbox[0]:s.bbox[2], s.bbox[1]:s.bbox[3]]
                .pipe(lambda df_: df_.rename(columns=df_.iloc[0])
                .drop(df_.index[0])))

    list_dfs.append(sub_df)

输出:

col1 col2 # <- first DataFrame
2    1   aa
3    2   bb <class 'pandas.core.frame.DataFrame'>

  col3 col4 # <- second DataFrame
7    3   cc
8    4   dd <class 'pandas.core.frame.DataFrame'>

   col5 col6 # <- third DataFrame
9     5   ee
10    6   ff <class 'pandas.core.frame.DataFrame'>
  • 使用的电子表格:*

NB:电子表格中的值范围(aka 表)不需要具有相同的形状。

相关问题