簡體   English   中英

如何使用pandas read_pickle從qrc資源文件中讀取包含pandas數據框的pickle文件?

[英]How can I read pickle file containing pandas data frame from qrc resource file with pandas read_pickle?

我在 PyQt5 中創建了簡單的 UI 應用程序。 我想在 qrc 資源中包含我所有的資源文件。

我正在使用 pickle 數據結構來存儲以前創建的 DataFrame。 在我的應用程序中,我正在用熊貓讀取保存的泡菜。 當我嘗試從 qrc_resources(用 pyrcc5 創建)Python 模塊執行此操作時,出現錯誤。

我使用了與此答案相同的方法:

從 qrc 資源文件創建一個 Pandas 數據框

資源文件:

<!DOCTYPE RCC><RCC version="1.0">
<qresource>
    <file alias="AA_data.pkl">resources/AA_data.pkl</file>
</qresource>
</RCC>

蟒蛇代碼:

import bisect, io
import pandas as pd

from PyQt5.QtGui import QImage
from PyQt5.QtCore import QFile, QIODevice
import qrc_resources       

file = QFile(':/AA_data.pkl')
if file.open(QIODevice.ReadOnly):
    f = io.BytesIO(file.readAll().data())
    AA_df = pd.read_pickle(f)

Error:
ValueError: Unrecognized compression type: infer

如果我對 Excel 文件做類似的處理,它就可以工作。 但是使用pickle文件格式時出現錯誤。 我對數據序列化不是很熟悉,我無法弄清楚我做錯了什么。

您必須使用 None 進行壓縮:

import io
import pandas as pd
from PyQt5.QtCore import QFile, QIODevice
import qrc_resources

file = QFile(':/AA_data.pkl')
if file.open(QIODevice.ReadOnly):
    f = io.BytesIO(file.readAll().data())
    AA_df = pd.read_pickle(f, compression=None)
    print(AA_df)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM