首页 > 解决方案 > 我以为我那里缺少 5 个必需的职位要求?请问有什么想法吗?

问题描述

import streamlit as st
import pickle

st.title('My first app')

model = open('model2.pkl','rb')
car_nb = pickle.load(model)  

def predict_price(name,year,nr_of_accidents,color_exterior,color_interior,car_mileage):
    
    prediction=car_nb.predict([['name','year','nr_of_accidents','color_exterior','color_interior','car_mileage']])
    print(prediction)
    return prediction

def main():
    
    st.title("Used Car Prices!!") 

    st.write('''
             # 
             ''')

    name = st.text_input("Car","Type Here")
    year = st.text_input("Year","Type Here")
    nr_of_accidents = st.text_input("Accidents","Type Here")
    color_exterior = st.text_input("Exterior Color","Type Here")
    color_interior = st.text_input('Interior Color', 'Type Here')
    car_mileage = st.text_input('Miles', 'Type Here')
    result=""
    
    if st.button("Predict"):
        result=predict_price(([['name','year','nr_of_accidents','color_exterior','color_interior','car_mileage']]))
    st.success('The price is {}'.format(result))

if __name__ =='__main__':
    main()

TypeError:predict_price() 缺少 5 个必需的位置参数:“year”、“nr_of_accidents”、“color_exterior”、“color_interior”和“car_mileage”

标签: pythonstreamlit

解决方案


您显然predict_price()从调用np.predict(). 正如错误消息所说,这不会像predict_price()预期的 6 个参数那样工作,并且您只传递了一个(嵌套列表)。您(很可能)应该更换:

result=predict_price(([['name','year','nr_of_accidents','color_exterior','color_interior','car_mileage']]))

result = predict_price(name,year,nr_of_accidents,color_exterior,color_interior,car_mileage)

推荐阅读