在我的目录中,有 9 个 txt 文件的列表。无需手动运行
pd.read_table()
每个文件,我想有效地运行一个循环,并为每个文件保存一个数据帧。请注意,由于列不同,我不会将这些文件附加到一个数据框中。
这些文件的范围为
all_alpha_10.txt, all_alpha_11.txt ... all_alpha_18.txt
,并且是车辆数据的集合。
我尝试了这个简单的循环:|| |然而,这给出了
for n in range(10, 19):
df200[n] = pd.read_table(f"all_alpha_{n}.txt")
这可以通过循环来实现吗?
NameError: name 'df200' is not defined
. Can this be achieved with a loop?
你收到的错误是因为你正试图在循环的每次迭代中访问
df200[n]
,但
df200
还未定义。你可以使用字典在循环中为每个数据帧存储一个单独的变量。
以下是如何使用循环读取多个 txt 文件,并将每个文件存储为字典中一个单独的数据帧:
import pandas as pd
dataframes = {} # 初始化一个空字典来存储数据帧
for n in range(10, 19):
filename = f"all_alpha_{n}.txt"
dataframes[f"df_{n}"] = pd.read_table(filename) # 将每个数据帧读取到字典中
# 现在你可以通过其键访问每个数据帧,例如:
print(dataframes["df_10"])
此代码将:
-
创建一个空字典
dataframes
来存储你的数据帧。 - 循环遍历你的文件名范围。
-
针对每个文件,使用
pd.read_table()
读取,并将结果数据帧存储在dataframes
字典中。每个数据帧的键将是df_10
、df_11
,以此类推,直到df_18
。
现在你可以通过其在
dataframes
字典中的相应键访问每个数据帧。例如,要访问对应于
all_alpha_10.txt
的数据帧,你可以使用
dataframes['df_10']
。