我这个懒人好久都没来更新文章了 一上来还有点心虚 感觉久别的男朋友被我无理由冷谈了许久 哈哈~ 前两天写了个开头 今天补上结尾 照顾工作还要照顾娃的中年人 不容易呀。。。
最近用了用feather 感觉还不错 然后和大家推荐一下。现在单机处理数据的时候 大多数情况下是习惯用csv来进行数据的导入导出的 但是碰到大量数据的时候 也是挺闹心的 内存不够 读取时间很久 烦
但用惯python的人是可以不用csv的 那遇到大数据量的时候用什么来保存数据呢 就是feather 一个更加轻量级的二进制保存格式。
feather每次猛一看 都得错认为father 勾起我的思念 我想念我的father 十一快到了 等我飞奔回家 哈哈。
feather是一种用于存储数据帧的数据格式 设计初期是为了python和R之间快速转化 现在主流的编程语言也都支持feather文件 不过它的数据格式是为短期存储设计的 不太适用于长期的存储 但用来做数据的搬运工还是没有问题得唻。那feather如何在python中使用呢 且听我慢慢道来
其实用下面的安装方式 也可以安装成功 但是后面保存数据的时候就会出问题 有坑 版本兼容性的问题 所以童鞋们还是用上面的安装方式
如果用conda的童鞋 可以把pip换成conda 应该就可以 我这个本内存4g 没用conda 我的是pip3 你的也可能是pip啊 根据情况换一下 我用另一台本本试了试 conda的安装失败 用pip是没问题的。
下面是conda安装方法 用conda的童鞋可以试试
# conda安装 conda install -c conda-forge feather-format用例说明
首先 找个比较大的数据集测试一下 我们直接用随机数生成一个吧 生成的代码如下 内存大的可以再试试更大数据量的 用公司的电脑内存受限~
看一下数据大小
然后 用feather来保存
保存速度很快吧 11s完成 耶 保存的数据大小大家过目一下 对于我这个4g内存的小本本 也算是大的了
那如何加载feather数据呢
很简单 有木有 和csv使用习惯一样一样的 用时45s。
我试着用csv来保存一下同样的数据呀 restart kernel 一下 清除所有的变量
重新运行一下刚刚随机生成的数据
因为第二次运行这个随机数据集 所以快了很多
保存成csv格式 用了3m17s 和feather的11s相比是不是快了很多倍 这个保存的时间让我去了卫生间 还和同事闲聊了几句 哈哈 多么宝贵的时间啊~
再试试用csv加载数据吧~
先看看保存成的数据大小 大了很多呀 feather才686m 没有对比就没有伤害呀 刚刚看feather的文件 还觉得大呢 这个1.6G 我的妈呀
加载倒是还好 竟然只有 比feather的45s还少 惊讶一脸对不对 我还是用csv吧 但是瞬间 我就发现了问题 前面feather读取数据的时候我没有清缓存的数据 但是读取csv的时候我清了
为了看看不清缓存的时候csv的用时 我又运行了一下随机数据集的生成和保存代码 然后直接读取
然后到3m了 一到分钟级 是不是就不可以忍受了 而且加载的时候电脑那个慢的来 唉吆喂 直接又去看了看儿子游泳的视频 啊哈哈
结论feather还是有可取之处的 对吧 之所以没有直接放代码 就是想让有兴趣的童鞋敲敲代码 不写代码的日子多寂寞呀~ 体验一下从csv到feather的进步空间吧 用惯了csv不一定要舍弃 但是feather作为一个备胎 还是有点价值的 在csv这个正经男朋友面前受了委屈 可以找feather寻寻安慰 哈哈
数据引领生活 各位继续加油 晚安奥



