【问题标题】:Reading large csv files using pandas with specifying dtypes giving memory error?使用 pandas 读取大型 csv 文件并指定 dtypes 会导致内存错误?
【发布时间】: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


    【解决方案1】:

    不幸的是,读取 csv 文件需要的内存比它在磁盘上的大小要多(不过我不知道还有多少)。

    您可以找到另一种方式来处理您的文件here

    【讨论】:

    • 这应该是一条评论。
    • 我已经尝试过将数据转换成我不想要的块。
    猜你喜欢
    • 2020-09-06
    • 2014-11-15
    • 2023-02-20
    • 2020-11-28
    • 1970-01-01
    相关资源
    最近更新 更多