gpt4 book ai didi

python - 从列表中创建 pandas 系列会耗尽内存

转载 作者:行者123 更新时间:2023-12-01 00:22:05 24 4
gpt4 key购买 nike

我正在从 txt 文件中读取数字列表作为字符串。文件不大,只有1GB。然后将数字转换为 float 并放入列表中。

with open(...) as f:
lines = f.read()
mylist = [float(x) for x in lines if x not in ['[',']',',', ' ']]

我的列表的最后内容只是 1.0 格式的简单 float 。然而这会占用大量内存。我注意到,如果我将它们转换为 int,它们不会占用那么多空间,但我需要它们是 float。

然后,当我尝试将其转换为 pandas 系列时,我的整个 session 崩溃了。

mylist = pd.Series(mylist)

我使用的是 google colab,大约有 25 GB 的 RAM 和 15 GB 的 GPU。我不敢相信只有 1 GB 的数据就能吃掉 25 GB 的内存,我一定做错了什么,但我不知道我应该做什么。任何帮助表示赞赏。

最佳答案

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

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()

关于python - 从列表中创建 pandas 系列会耗尽内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58888424/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com