данные, когда я соединяю с предсказаниями - PullRequest
4 голосов
/ 03 мая 2019

У меня есть графический интерфейс Tkinter, который запускает Logistic Reg. приложение имеет две кнопки; Один для получения файла и второй для прогнозов. Моя программа построена так: Верхняя часть содержит весь способ склеарна, пока данные не будут установлены. Затем вторая часть содержит мой графический интерфейс Tkinter. Моя кнопка прогнозирования выдает файл, содержащий категорические значения, которые я не хотел, и сами прогнозы. Единственная проблема заключается в том, что при выдаче файла вершина почти пуста, хотя у меня есть прогнозы, а функция прогнозирования выдает именно то, что я хочу, когда используется без графического интерфейса. Вот как выглядит выпущенный документ:

 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 теперь пуст.

1 Ответ

3 голосов
/ 03 мая 2019

Вам не нужно concat, вы можете просто сохранить прогнозы как новый столбец.

numerical['Preds'] = pred
numerical.to_csv('report.csv')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...