[英]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 模塊執行此操作時,出現錯誤。
我使用了與此答案相同的方法:
資源文件:
<!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.