首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Python中动态命名数据帧?

问如何在Python中动态命名数据帧?
EN

Stack Overflow用户
提问于 2019-07-24 14:35:42
回答 4查看 522关注 0票数 1

我有一个包含30多张工作表的excel文件。然而,我在每个工作表上所做的操作或多或少都是相同的。但我的目标是为每个工作表创建单独的数据框架,以便将来可以参考

这就是我所尝试的,但它抛出了一个错误

代码语言:javascript
复制
xls = pd.ExcelFile('DC_Measurement.xlsx')
sheets = xls.sheet_names
for s in sheets:
    print(s)
    'df '+ s = pd.read_excel(xls, sheet_name=s)

因此,就像我想要创建30个数据帧,并且每个数据帧都将以工作表名称作为后缀名称。我尝试使用"+“运算符,但也没有帮助。它抛出一条错误消息,如下所示

代码语言:javascript
复制
  SyntaxError: can't assign to operator

如何动态创建数据帧并为其命名?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2019-07-24 14:39:48

您可以使用类似以下内容:

代码语言:javascript
复制
for s in sheets:
    vars()['df'+ s] = pd.read_excel(xls, sheet_name=s)
票数 4
EN

Stack Overflow用户

发布于 2019-07-24 18:16:54

严格地说,这不是您问题的答案,但这将创建一个字典,其中键是工作表名称,值是数据帧。

代码语言:javascript
复制
workbook = pd.read_excel('DC_Measurement.xlsx', sheet_name = None)

然后,您可以像这样检索所需的数据帧。

代码语言:javascript
复制
df = workbook['sheet_name']

我认为这比其他解决方案更有条理。

票数 2
EN

Stack Overflow用户

发布于 2019-07-24 14:56:56

或者使用locals

代码语言:javascript
复制
for s in sheets:
    locals()['df'+ s] = pd.read_excel(xls, sheet_name=s)

在函数中,将locals更改为globals。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57176651

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档