运行一个带有要加载的pickles的简单streamlit应用程序时,我收到“ModuleNotFoundError:没有名为'pandas.core.indexes.numeric'的模块”错误

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

下面的代码是我加载腌制文件的方式(注意:这些腌制文件制作正确,所以没有问题,除非也需要代码)。

    import streamlit as st
    import pandas as pd
    import pickle
    
    Pickle1 = open("../Backend/pickle1.pkl", 'rb')
    Pickle2 = open("../Backend/pickle2.pkl", 'rb')
    p1 = pickle.load(Pickle1)
    p2 = pickle.load(Pickle2)
    

    st.title('App')

我在 StackOverflow 中看到了另一个解决方案,但该解决方案指出 pandas.core.indexes.numeric 不包含在包中,但我的包含在包中(运行后 import pandas.core.indexes as i,我没有收到任何错误)。我也尝试升级pandas,但它是最新版本,我尝试询问chatGPT,但它给了我相同的解决方案:升级pandas。我在这里缺少什么?

python pickle
1个回答
0
投票

我发现here提出了类似的问题,这可能会有所帮助。 如果 pickle 文件是使用

pandas<2
生成的,则使用
pandas>2
读取它可能会出现问题。或者,您可以使用
pandas.read_pickle
方法,如下所示:

import pandas as pd
from myclass import myClass

mc = pd.read_pickle("file_name.pkl")
dict(mc)

其中

myclass.py
是自定义Python文件,如下:

class MyClass:
  def __init__(self, thing, df):
    self.thing=thing
    self.df=df
  def __iter__(self):
    yield "thing", self.thing
    yield "df", self.df
© www.soinside.com 2019 - 2024. All rights reserved.