当前位置: 首页 > 知识库问答 >
问题:

如何将变量保存为for循环中的不同文件?

都超英
2023-03-14

我在列表中有一个csv文件路径名列表,我正在尝试将它们保存为数据框。我该怎么做?

import pandas as pd
import os
import glob

# use glob to get all the csv files
# in the folder
path = "/Users/azmath/Library/CloudStorage/OneDrive-Personal/Projects/LESA/2022 HY/All"
csv_files = glob.glob(os.path.join(path, "*.xlsx"))
  
# loop over the list of csv files
for f in csv_files:
    
    # read the csv file
    df = pd.read_excel(f)  
    display(df)
    print()

问题是它只打印。但我不知道如何保存。我想将所有数据框另存为变量,最好是它们的文件名。

共有2个答案

奚英朗
2023-03-14

试试这个:

a = [pd.read_excel(file) for file in csv_files]

然后,a 将是所有数据帧的列表。如果你想要字典而不是列表:

a = {file: pd.read_csv(file) for file in csv_files}
韦熙云
2023-03-14

通过“保存”,我认为您的意思是将数据帧存储在变量中。我会为此使用字典而不是单独的变量。

import os


data = {}

for f in csv_files:
    name = os.path.basename(f)

    # read the csv file
    data[name] = pd.read_excel(f)  
    display(data[name])
    print()

现在,您的所有数据帧都存储在data字典中,您可以在其中迭代它们(如果需要,可以轻松地将所有数据帧一起处理)。字典中的键是输入文件的基本名称(文件名)。

回想一下,字典记住了插入顺序,所以文件的插入顺序也被保留。我可能建议在解析之前对输入文件进行排序——这样您就可以得到一个可复制的脚本和操作序列!

 类似资料:
  • 出于某种原因,当我尝试运行这段代码时,它总是返回找不到符号。然后我发现问题是变量无法解析为变量。我不知道为什么它无法将其解析为变量。

  • 在for循环中为字符串定义值时遇到问题,但我需要它保持不变,即使在循环完成后也是如此。这是我的密码: 我知道如果我给soporte在for或if中赋一个值,它会改变,但我不知道如何做,因为它只是第一次问。还有,代码真的很长。这只是一个片段,所以有些东西是不完整的。P. D.apellido_1是用户的输入,但我使用了将要运行的示例。

  • 在循环中,我是否可以对循环使用相同的计数器变量? 或者这些变量会相互影响吗?以下代码应该为第二个循环使用不同的变量,例如,还是可以?

  • 如下所示,我要反转数组。但我的代码不管用。这是我的for循环。请看一下。这个for循环正确吗。代码如下。

  • 问题内容: 出于示例目的… 所以我最终得到了string1,string2,string3 …都等于 问题答案: 但实际上将一个值与另一个值相关联的最佳方法是字典。这就是它的设计目的!

  • 在for循环中,为不同的变量分配一个值。已经赋值的变量将从下一次迭代中获得赋值。最后,两个变量的值相同。该代码用于验证文件中的数据。当我打印这些值时,它会为第一次迭代打印正确的值,但在下一次迭代中,第一次迭代中指定的值会更改。当我在for循环中打印$value3和$value4的值时,它会为$value4显示null,为$value3显示一些值,但在下一次迭代中,$value3的值会被$value