如今,数据有多种格式,由于内存的复杂性,它们大多被压缩了,并在任何平台上传输数据。数据的压缩通常涉及到在不损失任何信息的情况下对数据进行压缩,而原始数据可以通过解压缩各自格式的数据在不同的平台上重新构建。因此,gzip是其中一种格式,大文件被压缩成较小的文件格式,可以很容易地解压缩,它主要用于云和服务器上的数据传输,主要用于各种ETL工具。所以在这篇文章中,让我们看看如何将gzip文件解压成一个简单的pandas数据框架。
目录
- 什么是gzip文件?
- gzip文件的好处?
- 从gzip文件中获取pandas数据框架的实现
- 摘要
什么是 gzip 文件?
在各种文件压缩格式中,gzip也是一种文件压缩格式,较大的文件被压缩成较小的文件格式,主要以兆字节(MB)为单位。所有的gzip文件都以文件格式指定符(gz)结束。这种压缩格式基本上是在1992年创建的,是一种开放源码的文件格式,旨在通过一种名为 "压缩 "的编程范式来使用,现在gzip文件格式被广泛用于方便数据传输和ETL工具 。
gzip文件的好处
- 易于在各种平台上压缩和解压的文件格式
- 减少云平台上的数据传输时间。
- 动态压缩任何类型的数据的能力,从图像到纯文本。
- 在网络服务器上的计算速度更快,75%的网络服务器使用这种格式。
从gzip文件中获取pandas数据框架的实现
由于gzip支持各种数据格式的压缩,不同平台上gzip文件格式的加载时间根据资源和平台的不同而不同。如果在基于云或服务器的平台上加载gzip文件,与在本地硬件上解压gzip文件相比,gzip文件可能解压很快。
所以在这篇文章中,使用了一个标准的gzip文件,并展示了如何在一个标准的pandas数据框中解压gzip文件的完整实现。
让我们导入一些加载数据框架所需的基本库
import numpy as np
import pandas as pd
这里使用了python的subprocess模块,而不是OS模块,以方便压缩gzip文件,解压gzip文件不受平台影响。利用check_output库,对网络服务器上的zip文件进行适当的数据解码。
from subprocess import check_output
print(check_output(["ls", "../input"]).decode("utf8")

这里基本上使用了两个不同大小的内存分配的gzip文件,其中一个文件的内存大小接近400MB,一个gzip文件的内存最大为3MB。
让我们看看在相同的工作环境下,加载一个较小的 gzip 文件和一个较大的 gzip 文件是否有时间差异。
加载一个较小的 gzip 文件

这里我们可以看到,我们正试图在一个工作环境中解压一个 2.26MB 的 gzip 文件。
gzip_df_small = pd.read_csv('../input/dot_traffic_stations_2015.txt.gz', compression='gzip',
header=0, sep=',', quotechar='"')
gzip_df_small.head(10)

加载一个较大的 gzip 文件

这里我们可以看到,我们正在使用一个 465.12MB 的 gzip 在工作环境中解压它。
gzip_df_big = pd.read_csv('../input/dot_traffic_2015.txt.gz', compression='gzip',
header=0, sep=',', quotechar='"')
gzip_df_big.head(10)

解压 gzip 文件的主要结果
- 根据gzip文件的大小和工作环境的不同,zip文件的解压可能会有一点变化,从几分之一秒到几分钟不等。
- 在不同的平台上,解压时间的变化是相当大的,因为gzip会在相当长的时间范围内渲染解压文件。
- 要知道每个数据单元存储和分离的知识,以便对任何特殊的转义字符使用所需的分离器和引号字符。
总结
在不同的平台上传输庞大的数据是很耗时的,而且内存效率不高,由于一些限制,为任何应用程序渲染数据都是不可行的。这时,压缩文件格式在有效的数据传输中起到了至关重要的作用,gzip就是这样一种压缩文件格式,它在网络服务器和ETL工具的数据传输中发现了它的主要用途,因为无论在什么平台上,数据的解压速度都很轻,如果以pandas格式解压,数据可以很容易地按照用户或数据处理人员的要求进行操作。