首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python:如何从已经预加载的列表中生成不同的数据格式

Python:如何从已经预加载的列表中生成不同的数据格式
EN

Stack Overflow用户
提问于 2021-12-09 07:24:24
回答 1查看 65关注 0票数 1

亲爱的社区,我正在尝试从已经预加载的列表中生成多个数据文件,并使用不同的数据格式names.First存储它们,我将我想要从文件夹中找到的特定excel文件的名称命名为:

代码语言:javascript
运行
复制
list = info.files.dropma() 

这些文件将存储我只想从特定文件夹读取的文件列表。

然后,我将倍数excel文件存储到列表("of dataframes")中:

代码语言:javascript
运行
复制
d = []
for f in list:
    li = pd.read_excel(f)
    d.append(li) 

上面,d生成一个包含多个Dataframes的列表。

然后创建一个带有数字的列表,以便将列表中的索引标识为:

代码语言:javascript
运行
复制
list_2 = [i for i in range(0,len(lista)]

后来,我调用了一个列表,上面有我想要调用我的新数据格式的名字。

代码语言:javascript
运行
复制
names = info.names

在此之后,我使用来自"list_2“和”名称“的信息,以便: i)遍历lis 'd‘(它包含来自不同excel文件的信息)的索引,并将我的新数据标记为:

代码语言:javascript
运行
复制
for i in list_2
    for i_2 in names 
        vars()[i_2] = pd.DataFrame(d[i])  

虽然没有错误,并且循环工作,并生成新的数据格式,但是代码并不以一种精确的方式存储信息。这里的情况是,代码重复列表"d“中的最后信息,然后沿着多个数据存储。

有办法解决这个问题吗?

我会接受任何意见或任何帮助,请。

EN

回答 1

Stack Overflow用户

发布于 2021-12-09 12:53:38

你是否想做以下几件事:

代码语言:javascript
运行
复制
files_list = info.files.dropma() 
dfs = [pd.read_excel(f) for f in files_list]
names = info.names
for name, df in zip(names, dfs):
    vars()[name] = pd.DataFrame(df)

这使用了2个基本Python特性:

  • 列表理解:引用docs: List理解提供了一种创建列表的简明方法。常见的应用程序是创建新的列表,其中每个元素是应用于另一个序列或可迭代的每个成员的某些操作的结果,或者创建满足特定条件的元素的子序列。
  • zip:除其他外,内置函数zip是用于对多个可迭代性进行同步循环的goto工具(这里有两个列表)。

正如阿恩在评论中提到的:

  • 不要使用list作为变量名--您正在重写内置类型的名称。
  • 只要vars()globals()相同,locals()就能工作(print(id(vars()) == id(globals()))应该产生True)。当情况不是这样的时候,它就中断了,因为locals()是只读的--例如在函数定义中。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70286062

复制
相关文章

相似问题

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