(非常)大的 QVD 文件到 pandas DataFrame

问题描述 投票:0回答:1

我尝试使用此工具将 QVD 文件加载到 pandas 数据帧,如下面的脚本所示。问题是它工作完美,但没有优化,而且它只提供了一种通过索引获取行的方法,这就是为什么我被迫使用 for 循环。

因此,随着行数的增加,复杂性也会增加。我发现 qvd.getRow() 函数会导致复杂性,但我找不到任何其他方法来解析 QVD 文件。我正在寻找这样的工具,但效率更高,尤其是在我处理一些具有约 1M 记录的文件时。


import qvdfile.qvdfile 
import pandas as pd 

qvd = qvdfile.QvdFile ("file.qvd")

df = pd.DataFrame(columns=qvd.getRow(0).keys())
cols = list(qvd.getRow(0).keys())

for r in range(int(qvd.attribs["NoOfRecords"])):
    df = pd.concat([df, pd.DataFrame([qvd.getRow(r)], columns=cols)], ignore_index=True)

python linux pandas qlikview qliksense
1个回答
5
投票

我认为这个项目应该可以解决您的性能问题:https://pypi.org/project/qvd/

我能够在大约 15 秒内读取 750k 行、55 列。

pip install qvd

from qvd import qvd_reader

df = qvd_reader.read('test.qvd')
print(df)
© www.soinside.com 2019 - 2024. All rights reserved.