我正在尝试将 Pydantic 模型转换为 Pandas DataFrame
,但是出现了各种错误。
这是代码:
from typing import Optional
from fastapi import FastAPI
from pydantic import BaseModel
import pickle
import sklearn
import pandas as pd
import numpy as np
class Userdata(BaseModel):
current_res_month_dec: Optional[int] = 0
current_res_month_nov: Optional[int] = 0
async def return_recurrent_user_predictions_gb(user_data: Userdata):
empty_dataframe = pd.DataFrame([Userdata(**{
'current_res_month_dec': user_data.current_res_month_dec,
'current_res_month_nov': user_data.current_res_month_nov})], ignore_index=True)
当我尝试在本地环境中通过/docs
执行时,返回的是DataFrame
:
Response body
Download
{
"0": {
"0": [
"current_res_month_dec",
0
]
},
"1": {
"0": [
"current_res_month_nov",
0
]
}
但是,如果我试图使用这个DataFrame
进行预测:
model_has_afternoon = pickle.load(open('./models/model_gbclf_prob_current_product_has_afternoon.pickle', 'rb'))
result_afternoon = model_has_afternoon.predict_proba(empty_dataframe)[:, 1]
我遇到了这个错误:
ValueError: setting an array element with a sequence.
我之前尝试过构建自己的DataFrame
,并且预测应该与DataFrame
一起工作。