python 常用数据压缩工具对比

python 常用数据压缩工具对比

你还在为数据过大,占用内存大而烦心吗?下面这些压缩工具可以帮助你

import sys
import brotli # brotli 是一种现代的压缩算法,提供了良好的压缩率和解压速度。它通常用于网页资源的压缩,如 HTML、CSS 和 JavaScript 文件
import pandas as pd
import lzma  # lzma 是一个标准库,用于处理 .xz 和 .lzma 文件。它提供了非常高的压缩率。
import gzip # gzip 是一个标准库,用于读取和写入 .gz 文件。它基于 zlib 提供的功能。
import zlib # zlib 是一个标准库,用于支持 gzip 压缩格式。它提供了数据压缩和解压缩功能。
import bz2 # bz2 是一个标准库,用于处理 .bz2 文件。它提供了较高的压缩率
import lz4.frame  # lz4 是一个非常快速的压缩算法,适用于需要高压缩速度的场景。它的压缩率较低,但解压速度极快
import zstandard as zstd # zstd 是一个提供高压缩率和高速的压缩算法。它可以调节压缩率和速度之间的平衡,非常适合大数据压缩
import snappy # snappy 是一个快速的压缩算法,适用于需要快速压缩和解压缩的场景,如实时系统。其压缩率较低,但速度非常快 安装 pip install python-snappy
import blosc # blosc 是一个用于科学数据的压缩库,特别适合于多维数组和块状数据的压缩。它提供多线程压缩,速度非常快
import fastlz # pyfastlz 是一个基于 FastLZ 的压缩库,提供了快速的压缩和解压缩功能。
df = pd.read_csv('3.csv')
brotli_compress_data = brotli.compress(str(df).encode('utf-8'))
lzma_compress_data = lzma.compress(str(df).encode('utf-8'))
gzip_compress_data = gzip.compress(str(df).encode('utf-8'))
zlib_compress_data = zlib.compress(str(df).encode('utf-8'))
bz2_compress_data = bz2.compress(str(df).encode('utf-8'))
lz4_compress_data = lz4.frame.compress(str(df).encode('utf-8'))
cctx = zstd.ZstdCompressor()

zstd_compress_data = cctx.compress(str(df).encode('utf-8'))
snappy_compress_data = snappy.compress(str(df).encode('utf-8'))
blosc_compress_data = blosc.compress(str(df).encode('utf-8'))
fastlz_compress_data = fastlz.compress(str(df).encode('utf-8'))

print("原始数据占用内存:",sys.getsizeof(df))
print("brotli 数据压缩至:",sys.getsizeof(brotli_compress_data))
print("lzma 数据压缩至:",sys.getsizeof(lzma_compress_data))
print("gzip 数据压缩至:",sys.getsizeof(gzip_compress_data))
print("zlib 数据压缩至:",sys.getsizeof(zlib_compress_data))
print("bz2 数据压缩至:",sys.getsizeof(bz2_compress_data))
print("lz4 数据压缩至:",sys.getsizeof(lz4_compress_data))
print("zstd 数据压缩至:",sys.getsizeof(zstd_compress_data))
print("snappy 数据压缩至:",sys.getsizeof(snappy_compress_data))
print("blosc 数据压缩至:",sys.getsizeof(blosc_compress_data))
print("fastlz 数据压缩至:",sys.getsizeof(fastlz_compress_data))

结果如下:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值