#python #dataframe #sorting #tkinter #treeview
Вопрос:
Я работаю над своим классным проектом, но теперь я не могу понять, как отсортировать дерево и отобразить первые пять строк в другом дереве. Проверьте изображение ниже:
Код, используемый для вставки данных в первый вид дерева в списке потерянных IV_Meds (проверьте изображение), приведен ниже:
def update_wastedItemsList(): global count i=count if i % 2 == 0: trv.tag_configure("evenrow", background='lightgrey', foreground='black') trv.insert(parent='', index='end' , text="", values= (count, ent2.get(), ent3.get(), ent4.get(), ent5.get()), tags=('evenrow',)) else: trv.tag_configure("oddrow", background='white', foreground='black') trv.insert(parent='', index='end' , text="", values= (count, ent2.get(), ent3.get(), ent4.get(), ent5.get()), tags=('oddrow',)) count = count 1
Чтобы создать treeview в оболочке списка IV_MedS, я использовал следующий код;
style = ttk.Style() trv = ttk.Treeview(wrapper1, columns=(1,2,3,4,5), show="headings", height=15) vsb = ttk.Scrollbar(wrapper1, orient="vertical", command=trv.yview) vsb.pack(side ='right', fill ='y') trv.configure(yscrollcommand=vsb.set) style.configure("Treeview.Heading", font=("Helvetica", 14))
Чтобы создать второй вид дерева с черным фоном, где я хочу увидеть 5 лучших лекарств с наибольшим количеством потраченных впустую денег, я использовал следующий код:
# create treeview inside the Top five highest IV_Meds wasted wrapper style = ttk.Style() trV = ttk.Treeview(wrapper4, columns=(1,2,3,4,5), show="headings", height=10) vsb = ttk.Scrollbar(wrapper4, orient="vertical", command=trV.yview) vsb.pack(side ='right', fill ='y') trV.configure(yscrollcommand=vsb.set) style.configure("Treeview.Heading", font=("Helvetica", 14))
Я хочу использовать кнопку сортировки дерева (видна на картинке), чтобы отобразить пять самых дорогих потраченных впустую IV. Используя следующий код;
def Treeview_VS(): for child in trv.get_children(): df = pd.DataFrame(trv.item(child)[str("values")]) trV.tag_configure("oddrow", background='black', foreground='white') trV.insert("",'end',text=trv.item(child)["text"],values=df, tags=('oddrow',))
После сортировки treeview я хочу определить название препарата как data.keys() и$ потраченных денег как data.values (), чтобы создать диаграмму в области гистограммы.
# create the barchart axes.bar(Drugs name, wasted Money$) axes.set_title('Top 5 wasted Expensive IV') axes.set_ylabel('wasted Money
)