网站建设的分类,百度推广有用吗,网站建设话术关键词,一千个长尾关键词用一千个网站做文章来源于Datawhale #xff0c;作者阿水Pandas是数据科学和数据竞赛中常见的库#xff0c;我们使用Pandas可以进行快速读取数据、分析数据、构造特征。但Pandas在使用上有一些技巧和需要注意的地方#xff0c;如果你没有合适的使用#xff0c;那么Pandas可能运行速度非常…文章来源于Datawhale 作者阿水Pandas是数据科学和数据竞赛中常见的库我们使用Pandas可以进行快速读取数据、分析数据、构造特征。但Pandas在使用上有一些技巧和需要注意的地方如果你没有合适的使用那么Pandas可能运行速度非常慢。本文将整理一些Pandas使用技巧主要是用来节约内存和提高代码速度。1 数据读取与存取在Pandas中内置了众多的数据读取函数可以读取众多的数据格式最常见的就是read_csv函数从csv文件读取数据了。但read_csv在读取大文件时并不快所以建议你使用read_csv读取一次原始文件将dataframe存储为HDF或者feather格式。一般情况下HDF的读取比读取csv文件快几十倍但HDF文件在大小上会稍微大一些。建议1尽可能的避免读取原始csv使用hdf、feather或h5py格式文件加快文件读取在某些定长的字符数据的读取情况下read_csv读取速度比codecs.readlines慢很多倍。同时如果你想要表格尽量占用较小的内存可以在read_csv时就设置好每类的类型。2 itertuples与iterrowsitertuples和iterrows都能实现按行进行迭代的操作但在任何情况下itertuples都比iterrows快很多倍。建议2如果必须要要用iterrows可以用itertuples来进行替换。3 apply、transform和agg时尽量使用内置函数在很多情况下会遇到groupby之后做一些统计值计算而如果用内置函数的写法会快很多。transform() 方法自定义函数用时1分57stransform() 方法内置方法用时712msagg() 方法自定义函数用时1分2sagg() 方法内置方法用时694ms建议3在grouby、agg和transform时尽量使用内置函数计算。这一部分的统计数据来自https://www.cnblogs.com/wkang/p/9794678.html4 第三方库并行库由于Pandas的一些操作都是单核的往往浪费其他核的计算时间因此有一些第三方库对此进行了改进modin对读取和常见的操作进行并行swifter对apply函数进行并行操作当然我之前也对此类库进行了尝试在一些情况下会快一些但还是不太稳定。在阿里云安全赛中我是用joblib库写的并行特征提取比单核特征提取快60倍。建议4如果能并行就并行用第三方库或者自己手写多核计算。5 代码优化思路在优化Pandas时可以参考如下操作的时间对比建议5在优化的过程中可以按照自己需求进行优化代码写代码尽量避免循环尽量写能够向量化计算的代码尽量写多核计算的代码。Pandas官方也写了一篇性能优化的文章非常值得阅读https://pandas.pydata.org/pandas-docs/stable/user_guide/enhancingperf.html最后我自己是一名从事了多年开发的Python老程序员辞职目前在做自己的Python私人定制课程今年年初我花了一个月整理了一份最适合2019年学习的Python学习干货可以送给每一位喜欢Python的小伙伴想要获取的可以关注我的头条号并在后台私信我01即可免费获取。