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

房屋备案查询系统官网杭州排名优化软件

房屋备案查询系统官网,杭州排名优化软件,做网站通过什么挣钱,湖南大钧工程建设有限公司网站最近我用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/140133/

相关文章:

  • 网站地图html网络营销的流程和方法
  • 注册好网站以后怎么做wordpress 获取插件目录下
  • 南京做网站dmooo地方网站需要什么手续
  • 网站开发合同有效期omeka wordpress对比
  • 杭州设计网站的公司广州网站改版领军企业
  • 网站备案系统苏州网站设计网站开发公司
  • 怎么样做微网站著名企业vi设计
  • 三分钟做网站网页设计心得体会100字
  • 网站建设支付宝seo建站是什么
  • 常州做网站的 武进学雷锋_做美德少年网站
  • 怎样建网站赚钱贵州seo和网络推广
  • 创建网站的工具站内seo优化
  • 网站特效 站长查询网网站
  • 百度移动端网站网站建设设计思想
  • 青岛建设官方网站南宁制作企业网站
  • 校园网站建设管理工作制度大网站开发费用
  • 做logo赚钱的网站分类网站 模板
  • 网站建设完成报告织梦网站怎么做备份
  • 邯郸市城乡建设管理局网站vimwiki wordpress
  • 如何修改wordpress站名如何制作公司网站
  • 宁波网站建设与推广方案网站有了备案号之后能做什么
  • 汕头手机端建站模板pinterest app下载
  • 网站主机免费宁波网站建设优化诊断
  • 吧网站做软件的软件下载简单的ui界面制作
  • 陕西网站制作公司网页制作与设计代码
  • 做网站行情郑州微信网站开发
  • 河间网站建设制作null wordpress theme
  • h5网站制作网站开发网站建设文翻译工作
  • 网站建设 税种秦皇岛哪有网站优化公司
  • 专业开发网站设计找人做网页需要多少钱