如何将.zst文件提取到熊猫数据框中

时间:2020-04-06 19:45:37

标签: python pandas dataframe zstd

在谈到Python时,我有点新手,但是我学校里的一个项目需要我对该Reddit流行度数据集执行分类算法。这些文件是很大的.zst文件,可以在这里找到:https://files.pushshift.io/reddit/submissions/ 无论如何,我不确定如何将其提取到数据库中,因为到目前为止,我们所分配的内容只是使用了.csv数据集,我可以轻松地将其放入熊猫数据框。 我偶然发现了另一篇文章,并尝试使用以下代码:

    def transform_zst_file(self,infile):
        zst_num_bytes = 2**22
        lines_read = 0
        dctx = zstd.ZstdDecompressor()
        with dctx.stream_reader(infile) as reader:
            previous_line = ""
            while True:
                chunk = reader.read(zst_num_bytes)
                if not chunk:
                    break
                string_data = chunk.decode('utf-8')
                lines = string_data.split("\n")
                for i, line in enumerate(lines[:-1]):
                    if i == 0:
                        line = previous_line + line
                    self.appendData(line, self.type)
                    lines_read += 1
                    if self.max_lines_to_read and lines_read >= self.max_lines_to_read:
                        return
                previous_line = lines[-1]

但是我不确定如何将其放入pandas数据框中,或者如果文件太大,则仅将一定百分比的数据点放入数据框中。 任何帮助将不胜感激!

以下代码仅在我每次尝试运行计算机时崩溃:

import zstandard as zstd  
your_filename = "..." 
with open(your_filename, "rb") as f:     
    data = f.read()  

dctx = zstd.ZstdDecompressor() 
decompressed = dctx.decompress(data)

可能是由于文件太大而引起的,是否有一定比例的文件要提取到熊猫数据框中?

1 个答案:

答案 0 :(得分:1)

已使用Zstandard(https://github.com/facebook/zstd)(一种压缩库)压缩了文件。

最简单的方法可能是使用来安装python-zstandard(https://pypi.org/project/zstandard/

pip install zstandard

然后在python脚本中运行

import zstandard as zstd

your_filename = "..."
with open(your_filename, "rb") as f:
    data = f.read()

dctx = zstd.ZstdDecompressor()
decompressed = dctx.decompress(data)

现在,您可以直接使用解压缩的数据,也可以将其写入某些文件,然后将其加载到熊猫中。祝好运!

相关问题