说我有200个csv文件,我想一次读取这些csv文件,并将每个csv文件存储在不同的数据帧中,例如第一个文件的df1,依此类推,直到df200。做df1=pd.read_csv
之类的手册最多要花费200个小时。我该如何使用熊猫呢?
我尝试使用for循环,但无法接近,陷入困境。
答案 0 :(得分:3)
import pandas as pd
import glob
all_files = glob.glob("file_path" + "/*.csv")
dfs_dict = {}
for idx, filename in enumerate(all_files):
df = pd.read_csv(filename, index_col=None, header=0)
dfs_dict["df"+str(idx)] = df
答案 1 :(得分:2)
尝试使用此:
import pandas as pd
import glob
path = r'path of the folder where all csv exists'
all_files = glob.glob(path + "/*.csv")
li = []
for filename in all_files:
df = pd.read_csv(filename, index_col=None, header=0)
li.append(df)
li将拥有所有的csv ...您可以进一步对其进行预处理,以将其分成不同的文件,
,或者如果所有csv都具有相同的列,并且您想将它们串联到单个数据帧,则可以在li上的pandas中使用concat
函数以返回单个数据帧。
答案 2 :(得分:1)
import pandas as pd
import os
dfs=[] #empty list of dataframes
dirname = #where your files are
for root,folders,files in os.walk(dirname):
for file in files:
fp = os.path.join(root,file)
df=pd.read_csv(fp)
dfs.append(df)
df=pd.concat(dfs)