从for循环读取和保存多个csv文件

时间:2019-07-11 13:55:46

标签: python pandas csv dataframe

我正在尝试从文件路径列表中读取多个csv文件,并将它们全部保存为单独的pandas数据帧。

我觉得应该有办法做到这一点,但是我找不到简洁的解释。

import pandas as pd

data_list = [['df_1','filepath1.csv'],
             ['df_2','filepath2.csv'],
             ['df_3','filepath3.csv']]

for name, filepath in data_list:
    name = pd.read_csv(filepath)

我也尝试过:

data_list = [[df_1,'filepath1.csv'],[df_2,'filepath2.csv'],
             [df_3,'filepath3.csv']]

for name, filepath in data_list:
    name = pd.read_csv(filepath)

我希望能够通过其分配的名称来调用每个数据框。

Ex):

df_1.head()

3 个答案:

答案 0 :(得分:1)

df_dct = {name:pd.read_csv(filepath) for name, filepath in data_list}

将创建一个DataFrames字典。这可以帮助您整理数据。

您可能还想研究glob.glob来创建文件列表。例如,要获取目录中的所有CSV文件:

file_paths = glob.glob(my_file_dir+"/*.csv")

答案 1 :(得分:0)

我建议你麻木。使用numpy读取csv文件。

from numpy import genfromtxt
my_data = genfromtxt('my_file.csv', delimiter=',')

您将获得nd-array。之后,您可以将它们包含在大熊猫中。

答案 2 :(得分:0)

您可以为此确定字典...

import pandas as pd
data_list = ['filepath1.csv', 'filepath2.csv', 'filepath3.csv']
d = {}
for _, i in enumerate(data_list):
    file_name = "df" + str(_)
    d[file_name] = pd.read_csv(filepath)

d是包含所有数据帧的字典。