python - 将多个 csv 加载到数据框中的最快方法
问题描述
我有一个包含许多 csv(100+)的文件夹,每个 csv 包含许多行。
我正在使用以下代码将 csv 加载到数据框中,但这需要相当长的时间。加载这些数据的最快方法是什么?
import os
import glob
import sqlite3
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
path = '/Users/DATA'
all_files = glob.glob(os.path.join(path,'*.csv'))
np_array_list = []
for file_ in all_files:
df = pd.read_csv(file_, index_col = None, header = 0, low_memory = False,
usecols = [1, 6, 7, 8, 9, 10, 11, 14, 16, 17, 22, 23])
np_array_list.append(df.as_matrix())
comb_np_array = np.vstack(np_array_list)
big_data = pd.DataFrame(comb_np_array)
解决方案
我建议使用生成器表达式来避免将所有数据两次加载到内存中。
dfs = (pd.read_csv(file_, **kwargs) for file_ in all_files)
pd.concat(dfs)
您也可以尝试将engine='c'
参数传递给阅读器以加快速度。
推荐阅读
- html - 如何在一页上创建以 NxM 为中心的大按钮?
- c# - 用户登录时,Asp.net Core Web Api 返回 401
- numpy - 如何在数组除以常数后更改 numpy 数组中浮点数的自动舍入?
- android - 在 com.google.android.gms.measurement.internal 解除绑定时抛出异常
- java - 为什么我的 JDA discord bot 没有收到 DM 并打印出来
- java-8 - 打开 jar 文件“/tmp/flink-web-/flink-web-upload”时出错
- c++ - 聚合与键匹配的向量对象值
- arrays - 有没有办法在反应中将一个 json 对象附加到另一个 json 对象中?
- python - kivy中的Python if语句问题
- sql - 如何一次在 MS Access 中创建多个关系?