在熊猫中将多个csv读入单独的数据帧

时间:2019-03-19 16:25:30

标签: python pandas dataframe

我有很长的csv文件列表,我想将其读取为数据帧并以其文件名命名。例如,我想读取文件status.csv并为其数据框分配名称status。有没有办法可以使用Pandas有效地做到这一点?

this,我仍然必须在循环中写下每个csv的名称。我想避免这种情况。

看着this,这使我可以将多个csv读入一个数据帧,而不是多个。

2 个答案:

答案 0 :(得分:3)

您可以使用os.listdir(dirname)列出目录中的所有csv,然后将其与os.path.basename结合使用以解析文件名。

import os

# current directory csv files
csvs = [x for x in os.listdir('.') if x.endswith('.csv')]
# stats.csv -> stats
fns = [os.path.splitext(os.path.basename(x))[0] for x in csvs]

d = {}
for i in range(len(fns)):
    d[fns[i]] = pd.read_csv(csvs[i])

答案 1 :(得分:0)

您可以创建DataFrames的字典:

d = {}  # dictionary that will hold them 

for file_name in list_of_csvs:  # loop over files

   # read csv into a dataframe and add it to dict with file_name as it key
   d[file_name] = pd.read_csv(file_name)


相关问题