我有一个列表文件,我想迭代并导入为数据帧:
data_files = ['data1.csv', 'data2.csv', 'data3.csv']
我正在尝试迭代列表并创建同名的数据帧,有点像手动执行以下操作:
data1 = pd.read_csv('data1.csv')
data2 = pd.read_csv('data2.csv')
data3 = pd.read_csv('data3.csv')
我试过了:
for i in data_files:
name = i.split('.')
name = pd.read_csv(name + ".csv")
上面的问题是,它只是将“i”创建为数据帧,而不是创建一组同名的数据帧对象。有人可以帮我这个吗?
答案 0 :(得分:1)
每次迭代时,您可能会覆盖数据框。改为使用字典/列表:
dataframes = dict()
for i in data_files:
name = i.split('.')
dataframes[name] = pd.read_csv(name + ".csv")
之后,访问您的数据框,如dataframes['data1']
。
答案 1 :(得分:0)
您可以创建存储数据对象的字典:
data_dict = {}
for i in range(len(data_files)):
data_dict[i] = pd.read_csv(data_files[i])
此外,调用i.split('.')
会创建一个['data1','csv']
形式的列表,当您尝试呼叫read_csv
时,我不确定这是否是您的意图,因为您在功能上声明{ {1}}没有意义。