Python 从列表创建熊猫系列会消耗内存

Python 从列表创建熊猫系列会消耗内存,python,pandas,memory-management,google-colaboratory,Python,Pandas,Memory Management,Google Colaboratory,我正在从txt文件中读取字符串形式的数字列表。这不是一个大文件,只有1GB。然后这些数字被转换成浮点数并放入一个列表中 with open(...) as f: lines = f.read() mylist = [float(x) for x in lines if x not in ['[',']',',', ' ']] 我的列表的最终内容只是1.0格式的简单浮动。然而,这会占用大量内存。我注意到,如果我将它们转换为int,它们不会占用那么多空间,但我需要它们是浮动的 然后,当我试

我正在从txt文件中读取字符串形式的数字列表。这不是一个大文件,只有1GB。然后这些数字被转换成浮点数并放入一个列表中

with open(...) as f:
    lines = f.read()
mylist = [float(x) for x in lines if x not in ['[',']',',', ' ']]
我的列表的最终内容只是1.0格式的简单浮动。然而,这会占用大量内存。我注意到,如果我将它们转换为int,它们不会占用那么多空间,但我需要它们是浮动的

然后,当我试图将其转换为熊猫系列时,我的整个会话都崩溃了

mylist = pd.Series(mylist)

我使用的google colab大约有25 GB的ram和15 GB的GPU。我不敢相信只有1GB的数据可以占用25GB的ram,我一定是做错了什么,但我不知道我应该怎么做。感谢您的帮助

是否尝试使用标准方法(带自定义分隔符)打开此文件

import pandas as pd
df  = pd.read_csv('you_file.txt', delimiter='\t')
df = df[(df['some_column'] != '[') & (df['some_column'] != ']')]
df = df[(df['some_column'] != ',') & (df['some_column'] != ' ')]
UPD: 也许您可以尝试使用python生成器,当我们关心RAM时,它是一个很好的工具

def open_file():
    for row in open(file_name, "r"):
        yield row
lines = open_file()

尝试使用
df=pd.read\u csv('file.txt',sep=”“,header=None)
直接从txt创建数据帧。看看这是如何为你工作的。嗨,虽然这并没有解决我的问题,但我能够编写一个像这样的pandas read_csv方法
df=pd.read\u csv('a.txt',sep=“,”,header=None).T.replace(['\['','\]'],['''''''''',],regex=True.).astype(float)
但它在耗尽所有ram后仍会崩溃我的colab尝试使用upd部分中编写的内容,可能会对您有所帮助…另外,默认值是float64,通过使用
pd.read\u csv(…,dtype=np.float32,…)