我有一个包含任意数量.csv文件的文件夹。现在我有三个目标:map1.csv、map2.csv和map3.csv。
我想将这些.csv文件的内容导入到一个 Dataframe 中,该 Dataframe 的名称与它们所来自的文件名相同。因此,文件夹###中map1.csv的内容需要位于名为map1(或map1.csv)的 Dataframe 中。
我知道动态创建变量不是最好的方法,但这正是我所需要的。所以如果有更好的方法来解决我的问题,我很乐意学习。
提前感谢:)
这是我尝试的:filenames显然包含文件的名称csv_files包含这些文件的路径count是文件夹中的文件数path是包含文件的文件夹的路径
import pandas as pd
from tkinter.filedialog import askdirectory
import fnmatch
import os
import glob
path = askdirectory(title='Select Folder') # shows dialog box and return the path
count = int(len(fnmatch.filter(os.listdir(path), '*.*')))
filenames = os.listdir(path)
csv_files = glob.glob(os.path.join(path, "*.csv"))
for i in range(count):
var_name = filenames[i]
value = pd.read_csv(csv_files[i])
globals()[var_name]= value
print(Map1.csv)
1条答案
按热度按时间k3bvogb11#
Python字典是这里合适的数据结构:键是你的文件名,值是你创建的 Dataframe 。
还可以通过删除
count
和filenames
(包括可能存在的任何非CSV文件)并仅使用csv_files
来改进代码。例如,从已经有
csv_files
的点开始:这绝对值得阅读更多并熟悉字典,因为它们是Python中的基本数据结构。您可以查看:https://realpython.com/python-dicts/