关于将多个csv文件读取到单独的Pandas数据帧中,我已经看到了一些答案,但仍然遇到麻烦。我已经将我的csv文件和文件名读入字典:
path = os.getcwd()
file_names = ['file1', 'thisisanotherfile', 'file3']
df_dict = {x: pd.read_csv('{}/{}.csv'.format(path, x)) for x in file_names}
似乎有效的方法:print(df_dict['file1'])
不过,我要寻找的是一个名为“ file1”的熊猫数据框,我可以在其中访问数据。
是否可以从字典中获取此信息?每次我想访问数据时都需要在代码中调用字典吗?
答案 0 :(得分:1)
frame = list(df_dict.values())
应该可以解决问题(as per this answer)!
说明:通过df.values()
调用返回的字典值称为“视图”-有点像速记响应,但实际上并不是正确的存储值。这样做是为了提高效率,以便用户可以在访问值之前预览该值。 list(df.values())
然后实际上将字典键的值转换为可用的形式-在这种情况下,就是您的数据框。
答案 1 :(得分:1)
将它们转换为变量并不是很有效,但是如果需要,请执行以下操作:
locals().update(df_dict)
在函数内部执行
:def f():
...
globals().update(df_dict)
答案 2 :(得分:0)
尝试一下:
import pandas as pd
import os
# get folder path
folder_path = os.getcwd()
file_names = ['Siddhartha', 'employee_file2']
for file in file_names:
final_df = file+"_df"
print("Dataframe name : "+final_df)
filename = file+".csv"
final_df = pd.read_csv(filename)
print(final_df.head())