我有一个运行Logistic Reg的Tkinter GUI。该应用程序有两个按钮;一个用于获取文件,第二个用于进行预测。我的程序是这样构建的: 顶部包含整个sklearn方法,直到数据拟合为止。然后第二部分包含我的Tkinter GUI。 我的预测按钮发出了一个文件,其中包含我不想要的分类值以及预测本身。 唯一的问题是当发出文件时,顶部的几乎是空的,尽管我有预测,并且预测功能完全可以产生我不使用GUI时想要的功能。这是发出的内容:
X1 X2 X3 Preds
0
1
1
0
xx xx xx
xx xx xx
xx xx xx
xx xx xx
这是我所做的:
from tkinter import *
root=Tk()
root.geometry('600x450')
root.resizable(width=False, height=False)
root.configure(background='white')
root.title('First ML GUI')
label1= Label(root,text='ML APP',bg= 'white')
label1.config(font=('Courier',20, 'bold'))
label1.place(x=100, y=30)
def catch_file():
# getting my file
root.filename=filedialog.askopenfilename()
btn_getfile=Button(root, text='Load_File', command=lambda:catch_file())
btn_getfile.pack()
btn_getfile.place(x=265,y=120)
#on_click_pred=Label(root, textvariable=msg2)
### Here is the Pred button##############
btn_predict=Button(root, text='PREDS',
command=lambda:predictor(root.filename))
btn_predict.pack()
btn_predict.place(x=450,y=200)
on_click_pred=Label(root, textvariable=msg2)
on_click_pred.place(x=360,y=150)
def predictor(file)
data=pd.read_csv(file)
data=data.dropna()
categorical=data[['A1','A2','A3']]
numerical=data.select_dtypes(include=['number'])
numerical=numerical[['X1','X2','X3']]
numerical=sc.transform(numerical)
pred=lr.predict(numerical)
pred_df=pd.DataFrame(pred, columns=['Preds'])
report=pd.concat([categorical,pred_df], axis=1)
report.to_csv('report.csv')
root.mainloop()
因此,总之,发行文件的第一部分仅包含预测,第二部分包含我需要的所有数据,但preds列现在为空。
答案 0 :(得分:3)
您无需concat
,只需将预测保存为新列即可。
numerical['Preds'] = pred
numerical.to_csv('report.csv')