gpt4 book ai didi

python - 如何在 Pandas 中使用 read_excel 提高处理速度?

转载 作者:太空宇宙 更新时间:2023-11-03 13:28:51 24 4
gpt4 key购买 nike

我需要使用 pd.read_excel 来处理一个 excel 文件中的每个工作表。
但在大多数情况下,我不知道工作表名称。
所以我用这个来判断excel中有多少sheet:

i_sheet_count=0
i=0
try:
df.read_excel('/tmp/1.xlsx',sheetname=i)
i_sheet_count+=1
i+=1
else:
i+=1
print(i_sheet_count)

在这个过程中,我发现这个过程很慢,
那么,read_excel是否可以只读取有限的行来提高速度呢?
我尝试了 nrows 但没有用..还是很慢..

最佳答案

不加猜测地阅读所有工作表

sheet_name = None 参数用于 pd.read_excel。这会将所有 工作表读入数据框字典。例如:

dfs = pd.read_excel('file.xlsx', sheet_name=None)

# access 'Sheet1' worksheet
res = dfs['Sheet1']

限制行数或列数

您可以使用 parse_colsskip_footer 参数来限制列数和/或行数。这将减少阅读时间,并且还适用于 sheet_name = None

例如,以下内容将读取前 3 列,如果您的工作表有 100 行,它将只读取前 20 列。

df = pd.read_excel('file.xlsx', sheet_name=None, parse_cols='A:C', skip_footer=80)

如果您希望应用特定于工作表的逻辑,您可以通过提取 sheet_names 来实现:

sheet_names = pd.ExcelFile('file.xlsx', on_demand=True).sheet_names

dfs = {}
for sheet in sheet_names:
dfs[sheet] = pd.read_excel('file.xlsx', sheet)

提高性能

将 Excel 文件读入 Pandas 自然比其他选项(CSV、Pickle、HDF5)慢。如果您希望提高性能,我强烈建议您考虑这些其他格式。

例如,一个选项是 use a VBA script将 Excel 工作表转换为 CSV 文件;然后使用 pd.read_csv

编辑 11 月 2 日:将 sheetname 更正为 sheet_name

关于python - 如何在 Pandas 中使用 read_excel 提高处理速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50695778/

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