这是我的第一篇文章。我想循环或在目录中进行迭代,以将每个文件作为单独的DataFrame导入,其名称类似于(至少使用数字)与其文件名类似的名称。 经过大量研究,我仍然不知道该怎么做。显然我是一个非常初学者:-)
我的代码是:
Main_folder = os.getcwd()
Folders = os.listdir('.')
for file in Folders:
data= pd.read_csv(file, sep="\t", header=0)
data.columns=data.columns.str.strip()
例如Folders
是文件名列表,包括文件扩展名。例如:
Folders=['01_load.TXT', '02_load.TXT', '03_load.TXT']
我需要的只是将所有文件导入我的工作空间,例如:
Load_01=pd.read_csv('01_load.TXT', sep="\t", header=0)
Load_02=pd.read_csv('02_load.TXT', sep="\t", header=0)
但是由于我有很多文件而处于循环中。
答案 0 :(得分:2)
您可以使用字典:
data = {}
for file in os.listdir('.'):
data[file] = pd.read_csv(file, sep="\t", header=0)
data[file].columns = data[file].columns.str.strip()
然后,您将每个数据帧作为字典的键进行访问,例如:data['01_load.TXT']
可以设置variable variable names并对其进行访问,但不建议这样做或不建议这样做。
答案 1 :(得分:0)
在循环中创建对象时,不能给它们指定明确的名称。但是,您可以将它们添加到将它们与相关名称关联的数据结构中。我会在这里推荐字典。因此,例如,您可以执行以下操作:
Folders=['01_load.TXT', '02_load.TXT', '03_load.TXT'] # These should be called filenames not folders but anyway.
data_frames = {} # Initialise a dictionary
for filename in Folders:
df = pd.read_csv(filename, sep='\t', header=False)
data_frames[filename] = df
# Now you can access any of the dataframes by the filename by using the dictionary:
# Let's say you want the df associated with 02_load.TXT
df = data_frames['02_load.TXT']
print(df.head())