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

中国十大门户网站建筑公司企业文化

中国十大门户网站,建筑公司企业文化,网站建设规划书企业网站,安卓市场app下载最近我用python处理excel#xff0c;使用的是pandas库#xff0c;我发现pandas库非常占用内存#xff0c;一直想研究下如何优化pandas的内存占用#xff0c;但一直没腾出空来#xff0c;最近终于有时间研究一把了#xff0c;我先把优化方法写上#xff0c;如果你想了解更…        最近我用python处理excel使用的是pandas库我发现pandas库非常占用内存一直想研究下如何优化pandas的内存占用但一直没腾出空来最近终于有时间研究一把了我先把优化方法写上如果你想了解更多的内容可以看一下XX这篇文章我优化的思路来源https://www.sohu.com/a/484114754_121124370这篇文章。 以下直接提供了优化方法如果你想知道为什么这么做可以参考我的另一篇文章链接: python pandas 优化内存占用(二) 1.优化结果 1.1 优化前 我优化的是一个20万行88列的excel文件源文件有76.59M,因为业务敏感性的原因源文件我不能贴出来。         先看一下优化之前excel占用了多少内存 # class pandas.core.frame.DataFrame # RangeIndex: 200000 entries, 0 to 199999 # Data columns (total 88 columns): # # Column Non-Null Count Dtype # --- ------ -------------- ----- # 0 column0 200000 non-null int64 # 1 column1 200000 non-null object # 2 column2 200000 non-null int64 ...... # 85 column85 199963 non-null float64 # 86 column86 199963 non-null object # 87 column87 199963 non-null float64 # dtypes: float64(14), int64(3), object(71) # memory usage: 965.9 MB上面的输出我精简了一下从上边的输出可以看出我的excel文件有200000行88列其中有14个float64类型的列3个int64类型的列71个ojbect类型的列总共占用内存965.9M。 上面的输出是使用如下的代码得到的。 gl.info(memory_usagedeep)1.2 优化后 # class pandas.core.frame.DataFrame # RangeIndex: 200000 entries, 0 to 199999 # Data columns (total 88 columns): # # Column Non-Null Count Dtype # --- ------ -------------- ----- # 0 column0 200000 non-null uint64 # 1 column1 200000 non-null object # 2 column2 200000 non-null uint64 ...... # 84 是否小区 199963 non-null category # 85 column85 199963 non-null category # 86 column86 199963 non-null category # 87 column87 199963 non-null category # dtypes: category(81), object(5), uint64(2) # memory usage: 143.8 MB同样我把优化后的输出也精简了一下从上边的输出可以看出我这个200000行88列的excel文件优化后占用内存143.8M优化效果还是非常明显的。         细心的小伙伴可能注意到一个问题优化后我的execl文件的列类型变化了优化前有14个float64类型的列3个int64类型的列71个ojbect类型的列优化后变成了81个category类型的列5个object类型列2个uint64类型的列。没错正如你看到的这就是优化的秘密为什么这样可以优化内存使用可以参看我的另一篇文章下面我讲一下我是如何做到的。 2. 优化方法 正如小伙伴在上文中看到的要想优化excel的内存占用大小一个重要的思路是改变excel的列类型如何获取优化后的列类型呢代码如下 import pandas as pd # 把excel中的数据类型转化成优化后的数据类型 def convert_to_right_type():# 读取文件gl pd.read_excel(xx.xlsx)# 初始化一个DataFrameconverted_obj pd.DataFrame()# 计算哪些列类型可以转换成category类型for col in gl.columns:num_unique_values len(gl[col].unique())num_total_values len(gl[col])if num_unique_values / num_total_values 0.5:converted_obj.loc[:, col] gl[col].astype(category)else:converted_obj.loc[:, col] gl[col]# 计算哪些int类型列可以downcast成子类型gl_int converted_obj.select_dtypes(include[int])converted_int gl_int.apply(pd.to_numeric, downcastunsigned)# 将转换后的int类型列合并回converted_objfor col in converted_int.columns:converted_obj[col] converted_int[col]# 计算哪些float类型列可以downcast成子类型gl_float converted_obj.select_dtypes(include[float])converted_float gl_float.apply(pd.to_numeric, downcastfloat)# 将转换后的 float 类型列合并回converted_objfor col in converted_float.columns:converted_obj[col] converted_float[col]# 获取数据类型索引(索引是列名值是数据类型)dtypes converted_obj.dtypes# 获取列名dtypes_col dtypes.index# 获取数据类型的名称dtypes_type [i.name for i in dtypes.values]# 列名和类型字典column_types dict(zip(dtypes_col, dtypes_type))# preview {key: value for key, value in list(column_types.items())[:20]}# 获取字典preview {key: value for key, value in list(column_types.items())}# 格式化输出, 使每个嵌套层级的缩进量为4个空格pp pprint.PrettyPrinter(indent4)# 打印字典pp.pprint(preview)这段儿代码的输出类似如下 column_types {column1: category,column2: uint64,column3: object,column4: uint64,column5: category}column_type 是个字典它的key是excel文件的列名称value是excel文件列对应的优化后的类型。 在读取excel的时候指定excel的dtype即可按照指定的列类型读取excel类似这样 gl pd.read_excel(XX.xlsx, dtypecolumn_types)3. 测试方法 我是用如下的代码测试excel占用内存的大小的 # 测试内存占用 def mem_usage(pandas_obj):if isinstance(pandas_obj, pd.DataFrame):usage_b pandas_obj.memory_usage(deepTrue).sum()else: # we assume if not a df its a seriesusage_b pandas_obj.memory_usage(deepTrue)usage_mb usage_b / 1024 ** 2 # convert bytes to megabytesreturn {:03.2f} MB.format(usage_mb)
http://www.w-s-a.com/news/770226/

相关文章:

  • 万网手机网站seo方法
  • 免费制作网站app百度首页纯净版
  • 支持api网站开发wordpress排版Markdown
  • 赤峰做网站的logo设计软件在线制作
  • iis网站批量导入苏州最新新闻事件今天
  • 甘肃省住房和城乡建设厅注册中心网站首页沈阳专业关键词推广
  • 网站怎么能在百度搜到网站开发费怎么做会计分录
  • 嘉定专业网站制作公司七星彩网站开发
  • 网站建设人员培训企业网站开发模型图
  • 自己开发一个网站应该怎么做国外设计网站 绿色的
  • 南昌外贸网站设计推广任务发布平台app
  • 建立网站成本书店网站建设可行性分析
  • 高端网站设计官网乌海学校网站建设
  • 哪些网站适合新手编程做项目优秀网页设计赏析
  • 永州网站seo德阳网站建设优化
  • 网站建设高端网站本地建设网站软件下载
  • 网站后台账号密码破解杭州酒店网站设计公司推荐
  • 和县网站开发秦皇岛建设工程信息网站
  • 国外网站用什么dns好建一个下载网站要什么cms系统
  • 礼品工艺品网站建设手机做网站哪家好
  • 泉州网站建设方案维护怎样选择网站建设
  • 江苏建站速度忿先进的网站建设
  • 广州天河建站公司com域名注册多少钱
  • 成都网站建设推广好vs2013如何做网站
  • 茶叶网站建设模板企业网站备案要多少钱
  • 怎么查网站找谁做的win主机伪静态规则 wordpress
  • 轻云服务器菁英版 多个网站北京it外包服务商
  • 售后服务 网站建设阳江seo优化
  • 网站建设后怎么赚钱wordpress调用导航栏
  • 特产网站设计六色网站