gpt4 book ai didi

python - pandas读取具有多个工作表和不同标题偏移量的Excel工作表

转载 作者:太空宇宙 更新时间:2023-11-03 21:36:40 33 4
gpt4 key购买 nike

我必须在 pandas 中读取包含多个工作表的 Excel 工作表。不幸的是,标题开始之前的空白行数似乎不同:

pd.read_excel('foo.xlsx', header=[2,3], sheet_name='first')
pd.read_excel('foo.xlsx', header=[1,2], sheet_name='second')

有没有一种优雅的方法来解决这个问题,并将 Excel 读入 pandas.Dataframe 中,并附加一个包含每个工作表名称的列?

即怎么可以

pd.read_excel(file_name, sheet_name=None)

传递不同的 header 参数或至少选择前 2 行(非空)作为 header ?

编辑

dynamically skip top blank rows of excel in python pandas似乎相关,但不是解决方案,因为只接受第一个 header 。

编辑2

具体文件结构的描述:

... (varying number of empty rows)
__irrelevant_row__
HEADER_1
HEADER_2

当前有 1 或 0 个空行。但正如评论中指出的那样,如果能够更加动态,那就太好了。

最佳答案

我确信这可以以更简洁的方式完成,但实现(我认为)你想要的方法是:

import openpyxl
import pandas as pd
book = openpyxl.load_workbook(PATH_TO_FILE)
for sh in book.sheetnames:
a = pd.DataFrame(book[sh].values).dropna(how='all').reset_index(drop=True)
a.columns = a.iloc[1]
a = a.iloc[2:]
a.iloc[0].index.name=sh
a["sheet"] = a.iloc[0].index.name
try:
b = b.append(a)
except NameError:
b = a.copy()
b.iloc[0].index.name = ''
print(b)
# header1 header2 sheet
#2 1 2 first
#3 3 4 first
#2 1 2 second
#3 3 4 second
#2 1 2 3rd
#3 3 4 3rd

不幸的是,我不知道它如何与您的实际数据交互,但我确实希望这对您的探索有所帮助。

关于python - pandas读取具有多个工作表和不同标题偏移量的Excel工作表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53204367/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com