我尝试读取3年的数据文件(每个日期一个),与父文件(每个文件大约90MB和150万行)相比,我感兴趣的部分通常很小(总共约140万行)。下面的代码在过去的文件数量较少的情况下对我来说工作得很好。但是有1095个文件要处理,它正在爬行(读取一个文件大约需要3-4秒)。有什么建议可以让它更高效/更快吗?
import pandas as pd
from glob import glob
file_list = glob(r'C:\Temp2\dl*.csv')
for file in file_list:
print(file)
df = pd.read_csv(file, header=None)
df = df[[0,1,3,4,5]]
df2 = df[df[0].isin(det_list)]
if file_list[0]==file:
rawdf = df2
else:
rawdf = rawdf.append(df2)发布于 2017-08-15 02:43:58
IIUC,试试这个:
import pandas as pd
from glob import glob
file_list = glob(r'C:\Temp2\dl*.csv')
cols = [0,1,3,4,5]
df = pd.concat([pd.read_csv(f, header=None, usecols=cols)
.add_prefix('c')
.query("c0 in @det_list")
for f in file_list],
ignore_index=True)https://stackoverflow.com/questions/45680827
复制相似问题