我有一个非常简单的任务:我需要在一个有许多列和数千行的文件中取1列的总和。但是,每次我在jupyter上打开文件时,它都会崩溃,因为每个文件不能超过100 MB。
是否有解决此任务的方法?我觉得我不必打开整个文件,因为我只需要一列。
谢谢!
答案 0 :(得分:1)
我不确定这是否行得通,因为您提供的信息有些有限,但是如果您使用的是python 3,我也会遇到类似的问题。尝试在顶部键入此内容,看看是否有帮助。它可能会解决您的问题。
import os
os.environ['KMP_DUPLICATE_LIB_OK'] = 'True'
以上解决方案只是一个创可贴,不被支持,并且可能导致不确定的行为。如果您的数据太大而无法存储,请尝试使用dask读取数据。
import dask.dataframe as dd
dd.read_csv(path, params)
答案 1 :(得分:1)
即使只需要一行,您也必须打开该文件,..打开将其加载到其他内存中,这就是您的问题。
您可以在Ipython外部打开文件并将其拆分为较小的尺寸 OR
使用诸如 pandas 之类的库,并像answer
中那样大块读取它答案 2 :(得分:0)
您应该对行进行切片并将其放在其他不同的数据框中,然后在相应的数据框中工作。 挂起问题是由于系统内存不足。
使用new_dataframe = dataframe.iloc[: , :]
-或new_dataframe = dataframe.loc[: , :]
-方法在大熊猫中切片。
行在结肠前切片,行在结肠后切片。