【发布时间】:2018-04-27 11:33:16
【问题描述】:
我正在尝试从 Kaggle 读取包含 4GB csv 文件的 expedia 数据,我尝试使用 pd.read_csv('filename') 读取它并出现内存错误。第二种方法我尝试仅使用代码阅读特定列:
pd.read_csv('train.csv', dtype={'date_time':np.str, user_location_country': np.int32, 'user_location_region':np.int32, 'user_location_city':np.int32, 'orig_destination_distance':np.float64, 'user_id':np.int32})
这再次给了我内存错误,但使用了相同方法的另一种修改:
train = pd.read_csv('train.csv', dtype={'user_id':np.int32,'is_booking':bool, 'srch_destination_id':np.int32, 'hotel_cluster':np.int32}, usecols=['date_time', 'user_id', 'srch_ci', 'srch_co', 'srch_destination_id', 'is_booking', 'hotel_cluster'])'
在大约 5 分钟内读取数据。
我的问题是我想使用任何方法阅读更多列,但都失败并给出Memory error。我正在使用 8GB RAM 和 8GB 交换空间,因此仅读取数据中 24 列中的 7-8 列将减少大约 800MB 的数据大小,因此不会出现硬件使用问题。
我还尝试根据我将在后面部分阅读的算法分块阅读我不想做的事情。
【问题讨论】:
标签: python python-3.x pandas csv kaggle