Python 使用熊猫读取大型csv文件时指定数据类型会导致内存错误?

Python 使用熊猫读取大型csv文件时指定数据类型会导致内存错误?,python,python-3.x,pandas,csv,kaggle,Python,Python 3.x,Pandas,Csv,Kaggle,我正在尝试从Kaggle读取expedia数据,其中包含4GB csv文件。我尝试使用pd.read\u csv('filename')读取数据,但出现内存错误。第二种方法我尝试仅使用代码阅读特定列: pd.read\u csv('train.csv',dtype={'date\u time':np.str,user\u location\u country':np.int32,'user\u location\u region':np.int32,'user\u city':np.int32,

我正在尝试从Kaggle读取expedia数据,其中包含4GB csv文件。我尝试使用
pd.read\u csv('filename')
读取数据,但出现内存错误。第二种方法我尝试仅使用代码阅读特定列:

pd.read\u csv('train.csv',dtype={'date\u time':np.str,user\u location\u country':np.int32,'user\u location\u region':np.int32,'user\u city':np.int32,'orig\u destination\u distance':np.float64,'user\u id':np.int32})

这再次给了我内存错误,但使用了相同方法的另一个修改,即:

train=pd.read\u csv('train.csv',dtype={'user\u id':np.int32,'is\u booking':bool,'srch\u destination\u id':np.int32,'hotel\u cluster':np.int32},usecols=['date\u time','user\u id','srch\u ci srch\u co','srch\u destination\u id','is\u booking','hotel cluster\u'])

大约5分钟后读取数据

我的问题是,我想使用任何一种方法读取更多的列,但这两种方法都失败并导致
内存错误
。我使用8GB RAM和8GB交换空间,因此在数据中24列中只读取7-8列将减少800MB左右的数据大小,因此不会出现硬件使用问题。
我还尝试了根据我将在后面阅读的算法,分块阅读我不想做的内容。

不幸的是,读取csv文件需要的内存比磁盘上的大(我不知道需要多少)


您可以找到另一种处理文件的方法

这应该是一个注释。我已经尝试过将数据转换成块,这是我不想要的。