将多个csv文件读取到单独的pandas数据帧中

时间:2019-07-15 04:59:53

标签: python pandas csv dataframe

关于将多个csv文件读取到单独的Pan​​das数据帧中,我已经看到了一些答案,但仍然遇到麻烦。我已经将我的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”的熊猫数据框,我可以在其中访问数据。

是否可以从字典中获取此信息?每次我想访问数据时都需要在代码中调用字典吗?

3 个答案:

答案 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())