首页 > 解决方案 > 蟒蛇 | 使用 pandas 以块的形式加载 excel 文件(一个块与其他块用空行分隔)

问题描述

我有一个 Excel 表,该表包含下面提供的不同部分示例。我想阅读新数据框中的每个部分。对于下面提到的工作表,我希望每个部分有 3 个数据框。像这样读取文件的可能方法是什么?

Header1 Header2 Header3 Header4
 A1       A2     A3       A4      - Section 1
 A5       A6     A7       A8
 A9       A10    A11      A12
 na       na      na      na   (Blank line)
 B1       B2     B3       B4  - Section 2
 B5       B6     B7       B8
 na       na     na       na (Blank Line)
 C1       C2     C3       C4 - Section 3
 C5       C6     C7       C8
 C9       C10    C11      C12 

标签: pythonpandasdataframe

解决方案


您可以尝试阅读完整的 DF,然后像这样拆分它:

# creating list of indexes for separation rows
sep_rows = df[df.isnull()].index.tolist()
# splitting according to the list
sep_rows2 = [0] + sep_rows + [max(sep_rows)+1]
dfs = [df.iloc[sep_rows2[n]:sep_rows2[n+1]] for n in range(len(sep_rows2)-1)]
# Show new dfs
print (dfs[0])
print (dfs[1])
print (dfs[2])

推荐阅读