当前位置: 首页 > news >正文

pandas减少dataframe占用内存的若干方法

一、只获取文件需要的列,避免加载整个文件

举例:只获取A.B两列数据

df = pd.read_csv('123.csv', usecols=['A', 'B'])

二、使用更准确的数据类型,减少内存空间占用

import pandas as pd  
import numpy as np  # 假设你的CSV文件有三列,分别名为'A', 'B', 'C'  
# 并且你希望列'A'为int32类型,列'B'为int64类型,列'C'为str类型  
dtype_dict = {  'A': np.int32,  'B': np.int64,  'C': str  
}  # 使用pandas.read_csv()读取CSV文件,并指定dtype  
df = pd.read_csv('your_file.csv', dtype=dtype_dict)  # 查看结果  
print(df.dtypes)

需要注意的是,在指定了数据类型之后,不满足的数据可能会被忽略或者由指定的数据进行替换,其中数据类型越小占用空间越少,比如int32几乎比int64少用一办的空间,但是具体采用哪种数据类型,还跟数据的范围有关系,一般来说:

int32的最大值为:2147483647(2^31 - 1)。这是32位有符号整数类型能表示的最大整数值。

  • int32 范围:-2147483648到2147483647(包括边界值)。

int64的最大值为:9223372036854775807(2^63 - 1)。这是64位有符号整数类型能表示的最大整数值。

  • 范围:-9223372036854775808到9223372036854775807(包括边界值)。

三、大数进行单位换算转小数据处理

如果数据中涉及汇总,单位换算的,可以提前将数据进行单位换算,比如从字节先换算为GB,那么他的数据类型可能就可以从int64转换为int32,可以节省一大部分空间,转换类型的方法如下:

import pandas as pd  
import numpy as np  # 假设我们有一个DataFrame df,其中一列名为'A'的数据类型是int64  
df = pd.DataFrame({'A': [1, 2, 3, 2**30, -2**30]})  # 注意:这里我们包括了一个接近int32边界的值  # 检查原始数据类型  
print(df.dtypes)  # 将列'A'从int64转换为int32  
# 注意:我们先转换为NumPy数组,然后转换数据类型,最后再转换回pandas的Series  
df['A'] = df['A'].astype(np.int32)  # 再次检查数据类型  
print(df.dtypes)

需要注意的是,转换的前提是该列的值都应该小于int32的最大值,否则会报数值溢出错误。

四、数据原地替换避免复制

一般来说在dataframe中使用 = 赋值,copy()方法,groupby()方法,pd.concat()方法,reset_index()方法,.loc[].iloc[].at[]等方法进行行或列的选择时都可能会发生数据复制导致内存占用,因此在譬如drop,rename,drop_duplicates时尽量采用inplace参数对数据进行原地赋值更新,减少由=赋值带来的赋值内存占用,比如:

df.drop(labels=['A'], inplace=True)

相关文章:

pandas减少dataframe占用内存的若干方法

一、只获取文件需要的列,避免加载整个文件 举例:只获取A.B两列数据 df pd.read_csv(123.csv, usecols[A, B]) 二、使用更准确的数据类型,减少内存空间占用 import pandas as pd import numpy as np # 假设你的CSV文件有三列&#xff0…...

Ubuntu20.04 64位 安装docker(有问题可评论沟通交流)

1、查看系统版本 cat /proc/version 2、卸载可能存在或未安装成功的docker(新系统无需操作) apt-get remove docker docker-engine docker-ce docker.io 3、更新apt-get apt-get update 4、安装软件包允许apt-get通过 HTTPS 使用存储库 apt-get install …...

【C++PCL】点云处理Kd树和八叉树区别

作者:迅卓科技 简介:本人从事过多项点云项目,并且负责的项目均已得到好评! 公众号:迅卓科技,一个可以让您可以学习点云的好地方 重点:每个模块都有参数如何调试的讲解,即调试某个参数对结果的影响是什么,大家有问题可以评论哈,如果文章有错误的地方,欢迎来指出错误的…...

makefile学习过程

makefile 完美教程 - WittXie - 博客园 (cnblogs.com) Makefile教程(绝对经典,所有问题看这一篇足够了)-CSDN博客 Makefile入门(超详细一文读懂)-CSDN博客 最实用的Makefile教程 真的很简单(搞不明白网上的教程写那么复杂干嘛&…...

Kompas AI数据分析与预测功能对比

一、引言 在现代商业环境中,数据分析与预测是企业制定战略决策的关键工具。通过对大量数据的分析,企业能够识别趋势、预测未来变化,并做出更为明智的决策。本文将对比Kompas AI与其他主要AI产品在数据分析与预测方面的能力,展示K…...

Appium+python自动化(二十五)- 那些让人抓耳挠腮、揪头发和掉头发的事 - 获取控件ID(超详解)

简介 在前边的第二十二篇文章里,已经分享了通过获取控件的坐标点来获取点击事件的所需要的点击位置,那么还有没有其他方法来获取控件点击事件所需要的点击位置呢?答案是:Yes!因为在不同的大小屏幕的手机上获取控件的坐…...

【博士每天一篇文献-算法】Fearnet Brain-inspired model for incremental learning

阅读时间:2023-12-16 1 介绍 年份:2017 作者:Ronald Kemker,美国太空部队;Christopher Kanan,罗切斯特大学 期刊: arXiv preprint 引用量:520 Kemker R, Kanan C. Fearnet: Brain-…...

Appium+python自动化(二十六)- 烟花一瞬,昙花一现 -Toast提示(超详解)

简介  今天宏哥在这里首先给小伙伴们和童鞋们分享一个有关昙花的小典故:话说昙花原是一位花神,她每天都开花,四季都灿烂。她还爱上了每天给她浇水除草的年轻人。后来,此事给玉帝得知。于是,玉帝大发雷霆,要…...

大数据之路 读书笔记 Day1

大数据之路 读书笔记 Day1 阿里巴巴大数据系统体系架构图 1. 数据采集层 #mermaid-svg-YqqD2w3qV6jc2aGP {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-YqqD2w3qV6jc2aGP .error-icon{fill:#552222;}#mermaid-sv…...

吴恩达揭秘:编程Agent如何革新软件开发行业

作为 AI 领域的杰出人物,吴恩达教授对编程 Agent 的兴起表示了极大的兴趣。他认为,编程 Agent 有潜力通过自动执行繁琐的任务、提高代码质量和加速开发周期来彻底改变软件开发行业。 本文将深入探讨吴恩达对编程 Agent 的见解, 多代理系统质…...

Study--Oracle-04-SQL练习

一、SQL语句思维导图 二、SQL练习 -- 以employee_id 为排序,列出前5个人 -- FETCH select employee_id,first_name from employees order by employee_id FETCH FIRST 5 rows only; -- 以employee_id 为排序,从第6个人开始 到第10个人 -- offset …...

目前音质最好的麦克风是哪款,一文读懂无线麦克风推荐哪些品牌好

​在自媒体时代,无线领夹麦克风成为自媒体人不可或缺的助手。它帮助我们在各种环境中保持清晰声音,提升创作效率与作品质量。然而,面对众多无线麦克风产品,挑选一款性价比高、性能卓越的款式却成为难题。今天,我将分享…...

Python笔记 异常、模块与包

一、了解异常 异常的概念 什么是异常 当检测到一个错误时,Python解释器就无法继续执行了,反而出现了一些错误的提示,这就是所谓的“异常”,也就是我们常说的BUG。 二、异常的捕获 1.知道为什么要捕获异常 世界上没有完美的程…...

spark查看日志

Logger 当 Spark 任务已经提交到集群运行后&#xff0c;可以通过以下几种方式查看LoggerFactory输出的日志&#xff1a; Web 界面&#xff1a;在 Spark 任务运行时&#xff0c;可以通过访问 Spark 的 Web UI 来查看日志。通常&#xff0c;可以在浏览器中输入http://<drive…...

【LeetCode】每日一题:LRU缓存

请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类&#xff1a; LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存 int get(int key) 如果关键字 key 存在于缓存中&#xff0c;则返回关键字的值&#xff0c;否则返回 -1 …...

记录一个Xshell使用中Xmanager...X11转发的提示问题

希望文章能给到你启发和灵感&#xff5e; 如果觉得有帮助的话&#xff0c;点赞关注收藏支持一下博主哦&#xff5e; 阅读指南 一、环境说明1.1 硬件环境1.2 软件环境 二、问题和错误三、解决四、理解和延伸一下 一、环境说明 考虑环境因素&#xff0c;大家适当的对比自己的软硬…...

Mamba 模型

建议观看讲解视频&#xff1a;AI大讲堂&#xff1a;革了Transformer的小命&#xff1f;专业拆解【Mamba模型】_哔哩哔哩_bilibili 1. 论文基本信息 2. 创新点 选择性 SSM&#xff0c;和扩展 Mamba 架构&#xff0c;是具有关键属性的完全循环模型&#xff0c;这使得它们适合作…...

30-33、SpringBoot项目部署\属性配置方式\多环境开发(一个文件)\多环境分组(多个文件)

1、打包插件:和springboot的版本保持一致 根pom <build><plugins><!--打包插件--><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>3.1.3</versi…...

【PyQt5】一文向您详细介绍 setContentsMargins() 的作用

【PyQt5】一文向您详细介绍 setContentsMargins() 的作用 下滑即可查看博客内容 &#x1f308; 欢迎莅临我的个人主页 &#x1f448;这里是我静心耕耘深度学习领域、真诚分享知识与智慧的小天地&#xff01;&#x1f387; &#x1f393; 博主简介&#xff1a;985高校的普通…...

分页查询前端对接

文章目录 添加角色修改角色当点击修改按钮后,那么就会弹出对话框,所以要设置显示为true点击修改的时候就是 要显示对话框 制作用户管理页面开发后端接口用户查询前端整合新增接口功能实现修改 添加角色 首先添加 添加表单的组件 那么总结一下 就是使用 组件 然后再使用变量接…...

Ubuntu系统优化下的LiuJuan20260223Zimage高性能部署

Ubuntu系统优化下的LiuJuan20260223Zimage高性能部署 本文基于Ubuntu 22.04 LTS系统测试&#xff0c;适用于NVIDIA GPU环境 1. 环境准备与系统优化 在开始部署LiuJuan20260223Zimage之前&#xff0c;我们先对Ubuntu系统进行一些基础优化&#xff0c;这些调整能让后续的模型运行…...

近场声全息(NAH)数据与MATLAB实现

一、近场声全息核心原理 近场声全息&#xff08;NAH&#xff09;通过测量声源近场区域的声压分布&#xff08;包含传播波和倏逝波成分&#xff09;&#xff0c;利用空间傅里叶变换重建声场分布。其核心公式基于Helmholtz-Kirchhoff积分方程&#xff1a;其中&#xff1a; p0(kx,…...

Qwen3-14B私有化效果闭环:从部署→使用→反馈→迭代的完整链路

Qwen3-14B私有化效果闭环&#xff1a;从部署→使用→反馈→迭代的完整链路 1. 开箱即用的私有化部署方案 Qwen3-14B作为通义千问系列的最新大语言模型&#xff0c;在14B参数规模下展现出惊人的理解与生成能力。但对于企业用户而言&#xff0c;如何在自有环境中实现稳定、高效…...

五步解锁老旧Mac新生:OpenCore Legacy Patcher实战指南

五步解锁老旧Mac新生&#xff1a;OpenCore Legacy Patcher实战指南 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 如何让苹果官方已停更的老旧Mac设备重新焕…...

foobox-cn:让foobar2000焕发新生的界面美化方案

foobox-cn&#xff1a;让foobar2000焕发新生的界面美化方案 【免费下载链接】foobox-cn DUI 配置 for foobar2000 项目地址: https://gitcode.com/GitHub_Trending/fo/foobox-cn 你是否厌倦了foobar2000单调的默认界面&#xff1f;是否希望在享受高品质音乐的同时&#…...

foobox-cn:重塑foobar2000视听体验的智能界面解决方案

foobox-cn&#xff1a;重塑foobar2000视听体验的智能界面解决方案 【免费下载链接】foobox-cn DUI 配置 for foobar2000 项目地址: https://gitcode.com/GitHub_Trending/fo/foobox-cn 你是否曾因音乐播放器界面过于简陋而错失沉浸式的听觉享受&#xff1f;当功能性凌驾…...

五款颠覆传统的嵌入式电路仿真工具:从移动端到PC端的创新体验

1. 移动端电路仿真工具的崛起与创新 十年前我第一次接触电路仿真时&#xff0c;还需要背着厚重的笔记本电脑到处跑。现在掏出手机就能完成80%的基础仿真需求&#xff0c;这种变化简直像从DOS时代直接跳到了智能手机时代。移动端仿真工具最大的优势就是随时随地验证灵感——等公…...

实战避坑:用Playwright+Selenium绕过电商网站验证码的3种方法(附Python代码)

实战避坑&#xff1a;用PlaywrightSelenium绕过电商网站验证码的3种方法&#xff08;附Python代码&#xff09; 电商平台的反爬虫机制日益复杂&#xff0c;验证码作为核心防线之一&#xff0c;已经从简单的图文识别升级到行为验证、智能风控等多维度拦截。本文将聚焦淘宝、京东…...

Qwen3.5-35B-A3B-AWQ-4bit企业应用:HR招聘简历图识别+关键资质自动核验系统

Qwen3.5-35B-A3B-AWQ-4bit企业应用&#xff1a;HR招聘简历图识别关键资质自动核验系统 1. 企业招聘场景的痛点分析 在传统HR招聘流程中&#xff0c;简历筛选和资质核验是最耗费人力的环节之一。每天面对堆积如山的纸质简历和PDF文件&#xff0c;HR需要&#xff1a; 手动翻阅…...

告别云端依赖:AnythingLLM本地Whisper实现完全离线语音转文字

告别云端依赖&#xff1a;AnythingLLM本地Whisper实现完全离线语音转文字 【免费下载链接】anything-llm The all-in-one AI productivity accelerator. On device and privacy first with no annoying setup or configuration. 项目地址: https://gitcode.com/GitHub_Trendi…...