python - QVD 文件到 pandas DataFrame
问题描述
我尝试使用以下脚本中给出的此工具将 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)
解决方案
我认为这个项目应该解决你的性能问题:https ://pypi.org/project/qvd/
我能够在大约 15 秒内读取 750k 行、55 列。
pip install qvd
from qvd import qvd_reader
df = qvd_reader.read('test.qvd')
print(df)
推荐阅读
- c - Posix 消息队列接收/发送/打开不起作用?
- postgresql - 我的海量数据库表使用什么结构
- android - android studio 升级到 3.1.3 版本后报错:AppCompatActivity 类无法导入
- java - 为什么 Eclipse JDT Null-Checking 尊重 Apache Commons Validate
- java - E/AndroidRuntime:致命异常:RxNewThreadScheduler-42
- postgresql-9.1 - 如何删除 Postgresql 中的重复行?
- cmd - 系统找不到路径---Apache Kafka Zookeeper
- python - 为什么在这种情况下我的视图上下文不显示?
- php - 无法在 WordPress 中获取页面内容
- go - golang-migrate Close() 不关闭连接