Python处理大数据的技巧, 2022-06-21
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python处理大数据的技巧, 2022-06-21相关的知识,希望对你有一定的参考价值。
参考技术A (2022.06.21 Tues)收集整理了Python处理大量数据的方法,基于Pandas,Numpy等数据处理工具。
用df的 info 方法并指定 memory_usage='deep' 参数,或使用df的 memory_usage 方法,并指定 deep=True 参数。
在读取数据文件的方法中加入 nrows 参数选择前n行数据读取。
也可以跳过m行之后,读取从m行开始的n行
当然也可以在 skiprows 选项中指定范围,保留headers,即保留列名
可以指定 skiprows 中需要忽略的行,用list或array导入即可。下面是随机
如果在这个指令中忽略 nrows=10 指令,则读取跳过100行之后的所有数据。
预先指定读入的列,缩小加载范围
不同的数据类型占用了不同大小的空间,对于尚未读取的数据,可以提前指定类型( dtype );对于已经读入的数据,通过 astype 方法修改成占空间更小的数据类型。
在读入数据之前,通过字典指定每列对应的数据类型,读入之后按照此类型显示数据。
通过改变数据类型减少空间的案例。修改DataFrame d 中的一列 Sctcd ,注意到该列的数据都是1、2、0,而保存类型是object,果断改成 uint8 ,通过 df.info(memory_usage='deep') 方法对比内存的使用情况。仅仅修改了一个列的类型,数据大小减小3MB。
一个特殊而高效的案例是当某一列的值只有有限个,不管是int还是string格式,且该列unque值远小于列的长度,可以将该列转变为 category 类,将节省大量空间。这么做当然也有代价,比如转换成 category 类的数据将无法做max/min等运算,由数字转换成的 category 也不能进行数值运算。这种转换对内存的节省效果显著,下面是对比。 dcol 只有两列, Stkcd 和 Stknme ,查看unique的个数与总长度,显示unique远小于总长度,分别转换为 category 类型,内存节省超过90%!
通过Pandas的 read_csv 方法中的 chunksize 选项指定读取的块大小,并迭代地对读取的块做运算。
1 https冒号//www点dataquest点io/blog/pandas-big-data/
2 CSDN - python 处理大量数据_如何用python处理大量数据
2 How to Work with BIG Datasets on 16G RAM (+Dask), on kaggle
《数据算法 Hadoop Spark大数据处理技巧》
数据算法 Hadoop Spark大数据处理技巧
!-- .boom-extension-active{cursor:>
以上是关于Python处理大数据的技巧, 2022-06-21的主要内容,如果未能解决你的问题,请参考以下文章