繁体   English   中英

Pandas:将多张工作表保存到单独的数据框中

[英]Pandas: Save multiple sheets into separate dataframes

我有一个包含多张工作表的 Excel 文件,我想使用循环将每张工作表保存到单独的 dataframe 中。

countries = ['Thailand', 'China']
for country in countries:
    (country + '_data') = pd.read_excel(path, sheet_name = country)

但是我收到一条错误消息: SyntaxError: can't assign to operator

我知道分配不正确,但是如何构建一个正确的循环来为每个工作表生成单独的数据框?

更好的方法是

  1. 使用内置的pd.ExcelFile方法
  2. 使用字典将工作表保存在单独的数据框中。

例如:

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'] 

我猜这是你正在寻找的东西,因为你要求一个循环。 请记住,使用循环会使将 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')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM