场景:操作多个sheet页时,发现都需要重新指定sheet页去读取数据,这种操作效率极低,费时。
一开始的操作:
import pandas as pd
path = r"xxxxxxxxxx.xlsx"
x1 = pd.ExcelFile(path)
all_name = x1.sheet_names
for sheet in all_name:
pd.read_excel(path, sheet_name=sheet)
我这边是有100多个sheet页,打开一次excel需要将近20秒时间,总共120个sheet。用上述操作方法,要打开100多次excel,极其的耗时。
新的操作:
用到 pd.io. excel.ExcelFile() 去读取excel
io = pd.io.excel.ExcelFile(path)
x1 = pd.ExcelFile(path)
all_name = x1.sheet_names
df = pd.read_excel(io, sheet_name=all_name)
# 操作每个sheet页
for sheet in all_name:
df_new = df[sheet]
用上述方法实际只打开了两次excel,比之前的方法省时。
用 df = pd.read_excel(io, sheet_name=all_name) 得到的是一个字典对象,字典的键对应sheet名字,值对应的是该sheet页的DataFrame