【pandas】在Pandas中降低dataframe使用的内存

2023-05-16

想要降低dataframe的内存占用主要有两种方法:

  • 使用小一点的数值型 datatype
  • object类型的列转为categorical类型
df = pd.DataFrame({"col_1":[x for x in range(0, 21)],
                   "col_2":['even' if val%2==0 else 'odd' for val in range(0, 21)]})
df

在这里插入图片描述

# 用info(memory_usage='deep') 看一下真实的内存使用情况
df.info(memory_usage='deep')

可以看到原始memory usage是 1.5KB
在这里插入图片描述

1. 把数值字段的datatype换成一个更小的数据类型

但是要注意这些数据的最大值和最小值,确保他们都在这个更小的数据类型的能保留的数据范围之内

datatype数值范围
int8-128 ~ 127
int16-32768 ~ 32767
int64-9223372036854775808 ~ 9223372036854775807
df['col_1'] = df['col_1'].astype('int8')
df.info(memory_usage='deep')

数值类型减小之后memory usage是 1.4KB
在这里插入图片描述

2. 把object类型转为categorical类型

df['col_2'] = df['col_2'].astype('category')
df.info(memory_usage='deep')

在这里插入图片描述
转categorical类型之后之后memory usage是 371 bytes

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

【pandas】在Pandas中降低dataframe使用的内存 的相关文章

随机推荐

  • [WPF] HamburgerMenu

    有两个库支持的 xff1a Metro App库中的 VS自己的控件 xff1a https docs microsoft com zh cn windows communitytoolkit archive hamburgermenu
  • 面积误差三种计算表达的比较

    引自 xff1a 面积误差三种计算表达的比较 有三种理论 xff0c 最基本的经典的 xff0c 引用一个吧 xff1a 网上有个题目 xff0c 求桌面面积的测量结果 桌面为矩形 用米尺测量 xff0c 长L为100 0 cm xff0c
  • 【转】WPF:Canvas中元素的定位

    概述 xff1a Canvas中的元素的大小和位置都是相对于Canvas容器的 xff0c 他的左上角为原点 xff0c 长度也是相对于他的 WPF xff1a Canvas中元素的定位 https blog csdn net chz cs
  • 【转】C#中计时

    一般可以用Environment TickCount xff0c 但是25天后会翻转 有很多 xff0c 见下面两个转的 C 中精确计时的一点收获 https www cnblogs com jintianhu archive 2010 0
  • 利用python分析微信聊天记录

    文章目录 前言一 任务分析二 工具三 步骤1 数据获取获取DB计算密码导出数据库 2 数据清洗 xff08 具体方法以后补充 xff09 3 数据分析 前言 昨天跟女朋友讨论谁给对方发的消息比较多 xff0c 两人各执一词 xff0c 事实
  • C++学习之模板

    文章目录 xff1a 一 模板 二 函数模板 三 类模板 一 模板 模板 也称泛型编程 泛型编程 xff1a 编写与类型无关的通用代码 xff0c 是代码复用的一种手段 模板是泛型编程的基础 在这之前我们可以利用C 43 43 的函数重载来
  • ROS2 创建python包

    1 创建python包 ros2 pkg create build type ament python span class token string 39 demo 39 span dependencies rclpy 以上指令为创建一个
  • Springboot集成SpringSecurity过程中遇到的问题

    Spring Security 开发文档 xff1a https www springcloud cc spring security zhcn html 一 配置的免登录访问接口不生效 span class token annotatio
  • 在sublime text3中配置c/c++运行环境

    在参考网上诸多大神配置sublime text3后 xff0c 自己也想写一篇有关在sublime中配置c c 43 43 的运行环境的文章 xff0c 顺便总结一下 安装sublime text3 xff1a 下载地址 xff08 官方地
  • STM32CubeMX 新建工程详细步骤

    STM32CubeMX 新建工程详细步骤 1 MPU CPU选择step1 打开CubeMX 软件 xff0c 在主页面上 点击如下按钮 xff0c 进入芯片选择界面step2 在Part Number Search 栏搜索我们需要用到的芯
  • macOS 10.11、macOS 10.12、macOS 10.13、macOS 10.14、macOS 10.15 制作可用于虚拟机安装的 CDR/ISO 系统镜像指导教程

    开篇说明 xff1a 不论是用 UltraISO xff0c 或者是用 MacOS 系统中的 磁盘工具 的格式转换功能进行 原版 DMG 61 61 gt CDR ISO 转换出来的 CDR ISO 文件只是进行了格式 xff08 容器 x
  • win10安装wsl2

    一 环境准备 1 确保bios开启虚拟化支持 各品牌主板进入bios的方式可百度或看主板说明书 2 查看当前win10版本是不是最新版 xff0c 如果不是则升级到最新版 查看当前版本 xff0c win 43 r打开运行窗口输入 34 w
  • snprintf 函数用法心得

    前人挖坑 xff0c 后人种树 不能对同一段内存 xff08 同一个buf 或是两个重叠的内存使用snprintf xff0c 换句等方面说 xff0c 在使用snprintf 时 xff0c 就确保内存不重叠 先来看看一段问题代码的执行结
  • VMware改变虚拟机文件在真实机的位置2208262201

    VMware 改变虚拟机文件位置 1 查看打开i虚拟机文件目录2 关闭虚拟机 将虚拟机文件夹复制或剪切到想要的位置3 用VMware打开复制的文件夹下的 vmx 文件 生成一个新的同名的虚拟机4 开启这个新生成的虚拟机 出现对话框选择意图
  • Ubuntu22.04.01Desktop桌面版 允许root用户远程登陆 笔记221110

    先给root设置密码 span class token function sudo span span class token function passwd span root 启用远程密码登录 和允许root远程ssh登陆 进入 etc
  • MySQL8 创建用户,设置修改密码,授权

    MySQL8 创建用户 设置修改密码 授权 MySQL5 7可以 创建用户 设置密码 授权 一步到位 x1f447 span class token keyword GRANT span span class token keyword A
  • win10远程桌面AlmaLinux9.1,用xrdp

    win10远程桌面AlmaLinux9 1 用xrdp 默认 yum 和 dnf 都下载不到 xrdp 要先 install epel release 安装EPEL源 span class token function sudo span
  • Rocky9.1安装xrdp远程桌面 230315

    Rocky9 1安装xrdp远程桌面 230315 要先 install epel release 安装EPEL源 span class token function sudo span yum span class token funct
  • DNS默认的端口号是: 53

    DNS默认的端口号是 53 DNS 域名系统 主机命名系统 DNS 是 Domain Name System 的缩写 DNS协议运行在UDP协议之上 xff0c 使用端口号53
  • 【pandas】在Pandas中降低dataframe使用的内存

    想要降低dataframe的内存占用主要有两种方法 使用小一点的数值型 datatype把object类型的列转为categorical类型 df span class token operator 61 span pd span clas