python程序memory error_详解解决Python memory error的问题(四种解决方案)

2023-11-01

昨天在用用Pycharm读取一个200+M的CSV的过程中,竟然出现了Memory Error!简直让我怀疑自己买了个假电脑,毕竟是8G内存i7处理器,一度怀疑自己装了假的内存条。。。。下面说一下几个解题步骤。。。。一般就是用下面这些方法了,按顺序试试。

一、逐行读取

如果你用pd.read_csv来读文件,会一次性把数据都读到内存里来,导致内存爆掉,那么一个想法就是一行一行地读它,代码如下:

data = []

with open(path, 'r',encoding='gbk',errors='ignore') as f:

for line in f:

data.append(line.split(','))

data = pd.DataFrame(data[0:100])

这就是先用with open把csv的每一行读成一个字符串,然后因为csv都是靠逗号分隔符来分割每列的数据的,那么通过逗号分割就可以把这些列都分离开了,然后把每一行的list都放到一个list中,形成二维数组,再转换成DataFrame。

这个方法有一些问题,首先读进来之后索引和列名都需要重新调整,其次很多数字的类型都发生了变化,变成了字符串,最后是最后一列会把换行符包含进去,需要用replace替换掉。

不知道为什么,用了这个操作之后,还是出现了Memory error的问题。基于这些缺点以及遗留问题,考虑第二种解决方案。

二、巧用pandas中read_csv的块读取功能

pandas设计

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python程序memory error_详解解决Python memory error的问题(四种解决方案) 的相关文章

  • mysql架构与存储引擎

    文章目录 一 MySQL体系架构 1 1 网络连接层 1 2 服务层 MySQL Server 1 3 存储引擎层 Pluggable Storage Engines 1 4 系统文件层 File System 1 4 1 日志文件 1 4
  • 【云原生•监控】基于Prometheus实现自定义指标弹性伸缩(HPA)

    云原生 监控 基于Prometheus实现自定义指标弹性伸缩 HPA 什么是弹性伸缩 Autoscaling即弹性伸缩 是Kubernetes中的一种非常核心的功能 它可以根据给定的指标 例如 CPU 或内存 自动缩放Pod副本 从而可以更
  • 蓝牙之二十-设备类型

    蓝牙设备在扫描时会发现设备的类型 蓝牙图标有耳机 打印机 电话等等 蓝牙协议栈里有一个叫做基带的字段 基带的分配编号指明查询访问码和设备 服务类别 CoD 字段 通用及设备特定的查询访问码 DIAC 查询访问码 IAC 是寻找蓝牙设备和服务
  • document.documentElement.scrollTop(获取滚动条位置)

    document documentElement scrollTop 收集关于scrollTop信息 要获取当前页面的滚动条纵坐标位置 用 document documentElement scrollTop 而不是 document bo
  • SQL后计算的利器

    现代应用开发中 通常只用SQL实现简单的数据存取动作 而主要的计算过程和业务逻辑直接在应用程序中实现 主要原因在于 过于复杂的SQL很难调试 编写 阅读 修改 SQL有方言特征 大量使用SQL后 会导致程序很难移植 架构方面要求业务逻辑在应
  • 通讯录管理系统——退出系统功能

    功能描述 退出通讯录系统 思路 根据用户不同的选择 进入不同的功能 可以选择switch分支结构 进行整个构建 当用户选择0时候 执行退出 选择其他先不做操作 也不会退出程序 创建用户选择输入的变量 int select 0 which t
  • Windows下搭建Telnet服务器

    1 开启Telnet功能 控制面板 gt 程序 gt 启用或关闭Windows功能 2 启动Telnet服务 打开计算机管理 双击Telnet服务 选择 启动 3 访问telnet服务 在cmd命令中输入 telnet ip 输入 y 进入
  • STL 容器详解——string 类

    目录 传统艺能 嘛是STL 内容 重要性 string 类 对象的常见构造 string 的遍历 append getline string的拷贝 两种 swap 传统艺能 小编是双非本科大一菜鸟不赘述 欢迎大佬指点江山 QQ 131936
  • 决策论——后悔准则

    策略 每种环境下 算出与该环境下最大值的差值 找出每种策略在不同环境下的最大差值 在这些最大值之中找到最小值 解析 每种环境下都有好坏 采用不通策略也有好坏 怎么评价好坏 采取了某个策略 不想与最好的情况相差太远 这样不至于过于后悔 缺点
  • git 基本命令

    删除分支 本地 git branch d branch name 远程 git push origin delete branch name https方式每次都要输入密码 按照如下设置即可输入一次就不用再手输入密码的困扰而且又享受http
  • C++——深拷贝和浅拷贝

    1 浅拷贝与深拷贝的区别 浅拷贝 默认拷贝函数 将原对象或原数组的引用直接赋给新对象 新数组 新对象 新数组只是原对象的一个引用 深拷贝 创建一个新的对象和数组 将原对象的各项属性的 值 数组的所有元素 拷贝过来 是 值 而不是引用 深拷贝
  • Spring JdbcTemplate

    Spring JdbcTemplate Spring JdbcTemplate基本使用 JdbcTemplate概述 它是spring框架中提供的一个对象 是对原始繁琐的Jdbc API对象的简单封装 spring框架为我们提供了很多的操作
  • linux把一个文件和子目录下面的内容改为所有用户可读写执行

    要将一个文件和子目录下的内容设置为所有用户可读 写和执行权限 可以使用chmod命令 假设您要修改的文件和子目录所在的路径为 path to file or directory 可以运行以下命令 chmod R 777 path to fi
  • 虚拟机安装linux系统,重启后无法联网

    虚拟机安装linux系统 重启后无法联网 使用环境 触发问题 临时解决问题 使用环境 manjaro 18 deepin15 8 fedoras 29 等 有nmcli网络套件管理 无法使用systemctl restart network
  • 尚硅谷VUE项目实战,前端项目-尚品汇(大型\重磅),笔记

    项目资料 前端资料 https gitee com jch1011 shangpinhui 0415 后台资料 https gitee com jch1011 guigu B站直达 https www bilibili com video
  • 保研之路——上交大电子系直博

    上交大电子系直博 个人情况 高校复试参与情况 上交电子系直博 6 15 结语 嗯 抱着不白花这么多路费住宿费的初衷准备写一个保研经验贴 希望学弟学妹少花点钱吧orz 我的战术大概是只要学校给我发了邀请我就去 除了时间冲突的情况 事实证明 我
  • HITiCS大作业——程序人生

    计算机系统 大作业 题 目 程序人生 Hello s P2P 专 业 计算机科学与技术 学 号 2021112155 班 级 2103103 学 生 谷佳熠 指 导 教 师 刘宏伟 计算机科学与技术学院 2022年11月 摘 要 本篇文章详
  • springboot定时任务详解

    文章目录 一 基于注解 静态 1 添加依赖 2 创建定时任务 3 参数说明 二 基于接口 动态 1 添加依赖 2 添加数据库记录 3 创建定时器 4 启动测试 三 Quartz 1 添加依赖 2 编写任务类 3 编写配置类 4 启动项目 在
  • MySQL数据库的性能优化----(一步一个脚印)

    一 MySQL数据库的优化目标 基本原则 1 优化目标 MySQL数据库是常见的两个瓶颈是CPU和I O的瓶颈 无论是索引优化 还是表结构优化 参数优化 最后都可以归纳到这这两个分类中 1 减少 I O 次数 I O是数据库最容易瓶颈的地方

随机推荐

  • Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/base/Function问题解决

    场景 java eclipse 调用问题 java eclipse selenium3 脚本 gt package LoginScript import org openqa selenium import org openqa selen
  • MySQL数据库多列索引详解

    多列索引的概念 多列索引 是指在创建索引时所关联的字段不是一个字段 而是多个字段 虽然可以通过所关联的字段进行查询 但是只有查询条件中使用了所关联字段中的第一个字段 多列索引才会被使用 多列索引的创建 创建表时定义索引 语法 CREATE
  • UE4蓝图:初体验(4)循环

    在C 中循环的关键字有for while do while三种 而在蓝图中 1 For循环 1 在蓝图中 右键输入for loop 获得ForLoop节点 该节点左边的按钮分别是循环计数的初始值和终止值 图中的是指从1 4共循环4次 右边的
  • eclipse中出现红线错误但不提示错误信息解决办法

    eclipse中出现红线报错 但鼠标悬停不提示错误信息 如图例 经过摸索找到了其中的解决方案 这主要与Hovers 的设置相关 通过如下设置修改 Window gt Preferences gt Java gt Editor gt Hove
  • AIX mount RedHat的NFS

    AIX mount RedHat的NFS RedHat 192 168 8 202 AIX 192 168 8 193 在RedHat服务器上设置NFS服务 1 RedHat服务器端的设定NFS都是在 etc exports这个文件中进行设
  • 敏捷运维

    序言 表面上都是自由的 实际上四周围墙 无法跨越 表面上都有很多选择 实际上没得选 成功是一种考验 失败也是 原因能想出来吗 敏捷运维 敏捷开发 在各种压力进行运维 有一定的适合场景 你知道么 风言风语 运维到底根据什么样的节奏走 是快一点
  • 【C语言】- printf 和scanf 函数详解!

    一 printf函数 这是在stdio h中声明的一个函数 因此使用前必须加入 include
  • 时序预测方法总结

    时序预测 本人博客只是平时学习中做的笔记 若文中有错误请大家指出 一 单变量时间预测 1 AR AutoRegression 自回归 自回归基于输入变量的线性组合为输出建模 输入 先前时间步长的值 输出 下一步的值 在时间序列中 鉴于当前和
  • 关于unity3d分享功能之ShareSDK的研究续二

    关于微信分享 前面的博客也是提到了 总有一下问题 有些注意的事项再一次总结一下 注意一 微信需要开发者认证审核通过app 这个时候会有AppID和AppSecret 把这个在脚本ShareSDKDevInfo cs中替换掉 注意在面板中一样
  • 学习QT的意义以及QT平台的安装

    文章目录 前言 一 为什么要学习QT 1 学习Qt的意义 2 Qt的一些应用案例 二 Qt软件的安装 1 Qt的下载 2 具体安装环节 总结 前言 Qt 是一个1991年由Qt Company开发的跨平台C 图形用户界面应用程序开发框架 它
  • 【分析】string中size与length

    结论 没有区别 length是因为沿用C语言的习惯而保留下来的 string类最初只有length 引入STL之后 为了兼容又加入了size 它是作为STL容器的属性存在的 便于符合STL的接口规则 以便用于STL的算法 具体解释 cplu
  • Nreal for Unity SDK 发布安卓参数设置

    Getting Started with NRSDK NRSDK 原文链接 Quickstart for Android NRSDK 1 7 0 documentationhttps nrealsdkdoc readthedocs io e
  • C#学习笔记 文件操作

    获得文件和文件夹信息 NET管理文件和文件夹信息的类有如下几个 Directory和File类是两个静态类 可以静态地获取文件和文件夹的信息而无需实例化对象 这在只对某个文件或者文件夹执行一次操作的时候是很有用的 Path也是一个静态类 为
  • 智慧城市大脑3.0白皮书:城市大协同,未来可持续。

    智慧城市大脑3 0白皮书 城市大协同 未来可持续 一 中国智慧城市建设真实现状 二 中国智慧城市建设的未来 三 智慧城市 脑3 0核 价值 四 2023年 lt 智慧城市解决方案全套 gt 大合集 一 中国智慧城市建设真实现状 中国智慧城市
  • 用了MQ消息中间件后,我开始后悔了...

    V xin ruyuanhadeng获得600 页原创精品文章汇总PDF 一 前情回顾 上篇文章 为什么要使用MQ消息中间件 这几个问题必须拿下 给大家讲了讲消息中间件引入系统架构的作用 主要是解决哪些问题的 其比较常见的实践场景是 复杂系
  • 家里Wifi网速突然变慢,一招瞬间提速

    家中网速突然变慢 通常是有人蹭你家的Wifi 不用担心 我教你一招瞬间提速 这个提速妙招的原理很简单 把你家的上网设备全部管起来 没加入的一律不让蹭网 接下来跟我一起实操 查看设备信息 我家的路由器是TP LINK 型号 TL WR886N
  • 门面模式

    类图 实现 HardDrive java package com facade public class HardDrive public byte read long lba int size byte bin null read ret
  • 成功解决:把python 3.9降到python3.8

    conda install python 3 8
  • yaml value中双引号转义

    aaa bbb 由于转义 aaa的值会被输出为bbb 若想输出为 bbb 需要改成 aaa bbb
  • python程序memory error_详解解决Python memory error的问题(四种解决方案)

    昨天在用用Pycharm读取一个200 M的CSV的过程中 竟然出现了Memory Error 简直让我怀疑自己买了个假电脑 毕竟是8G内存i7处理器 一度怀疑自己装了假的内存条 下面说一下几个解题步骤 一般就是用下面这些方法了 按顺序试试