我有很长的csv文件列表,我想将其读取为数据帧并以其文件名命名。例如,我想读取文件status.csv并为其数据框分配名称status
。有没有办法可以使用Pandas有效地做到这一点?
看this,我仍然必须在循环中写下每个csv的名称。我想避免这种情况。
看着this,这使我可以将多个csv读入一个数据帧,而不是多个。
答案 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)