我有一个包含多张工作表的Excel文件,我想使用循环将每张工作表保存到单独的数据框中。
countries = ['Thailand', 'China']
for country in countries:
(country + '_data') = pd.read_excel(path, sheet_name = country)
但是我收到一条错误消息: SyntaxError:无法分配给运算符
我知道分配是错误的,但是如何建立正确的循环以为每个工作表生成单独的数据框?
答案 0 :(得分:3)
更好的方法是
pd.ExcelFile
方法例如:
xl = pd.ExcelFile(file)
print(xl.sheet_names)
['China','Japan','Pakistan'...]
然后您可以将它们分配给字典
d = {} # your dict.
for sheet in xl.sheet_names:
d[f'{sheet}']= pd.read_excel(xl,sheet_name=sheet)
然后您可以呼叫自己的dfs
d['China']
答案 1 :(得分:0)
我猜这是自您请求循环以来一直在寻找的东西。请记住,使用循环会使将df分配给变量更加困难。
还要注意,read_excel会将第一张纸读取为0
import pandas as pd
num_sheets = 3
sheets = dict()
for i in range(num_sheets):
sheets[i] = pd.read_excel('./test.xlsx', sheet_name = i)
使用字典是在标题上包含循环的唯一简便方法。
如果不需要循环,可以只使用read_excel部分指定工作表名称或编号。
import pandas as pd
thailand_data = pd.read_excel('./test.xlsx', sheet_name = 'Thailand')