Python 加载字符串并计算它的内存效率

Python 加载字符串并计算它的内存效率,python,pandas,csv,dataframe,evaluation,Python,Pandas,Csv,Dataframe,Evaluation,我有一个csv,其中有一列包含浮动列表,我使用json.loads()对其进行评估 问题是csv非常大。当我加载整个CSV时,它会占用40GB的内存 经过评估后,它的大小将增长到160-170 GB。我尝试使用一个函数来定义一个作用域,然后垃圾收集器释放未使用的内存,但它不起作用。我在用朱庇特笔记本 我尝试使用脚本,因为Ipython保留了引用,但这并没有解决问题。我还尝试过使用pandas.read_csv(…,converters={'float_nums':json.loads}),但没有

我有一个csv,其中有一列包含
浮动列表
,我使用
json.loads()
对其进行评估

问题是csv非常大。当我加载整个CSV时,它会占用40GB的内存

经过评估后,它的大小将增长到160-170 GB。我尝试使用一个函数来定义一个作用域,然后垃圾收集器释放未使用的内存,但它不起作用。我在用朱庇特笔记本

我尝试使用脚本,因为Ipython保留了引用,但这并没有解决问题。我还尝试过使用
pandas.read_csv(…,converters={'float_nums':json.loads})
,但没有任何改进

这是我使用的函数

def preprocess(df):
    df.float_nums = df.float_nums.apply(json.loads)

如何处理这个问题?

这是一个XY问题。如果您有几行json,那么应该使用
df=pd.read_json(…,lines=True)
。我已经解释了主要问题和我尝试过的方法。同样-我有一个带有文本列的大CSV和一个带有浮点数的列,我必须将它们作为浮点数列表加载,而不是字符串加载,因为它是由
read\u CSV
加载的。那么,为什么需要json.loads?我还尝试了
literal\u eval()
模块和内置的
eval()
,但是
json.loads()
结果证明是最快的,并且给出了相同的结果-经过评估的浮动列表。您是否尝试过使用
pd.read\u csv(..)
分块读取csv?查看read\u csv的
chunksize
参数。