Was ich versuche zu erstellen, ist ein Programm, das zuerst einen Pandas Datenrahmen erstellen wird. Dann wird ein Tkinter-Fenster mit einem Eingabefeld, einer Schaltfläche und einem Textfeld erstellt. Für den Code, den ich unten habe, wenn ich die Taste drücke, bekomme ich eine Ausgabe, die den Header des Datenrahmens und die Zeile zeigt, die "durchsucht" wurde.Suchen eines tkinter Datenrahmens
import pandas
from tkinter import *
#creates the dataframe
summer17=pandas.read_excel("summer17.xlsx","list")
window = Tk() #start of the main window
#function that will search the dataframe column "company" for any matches
def search_df():
search_result=summer17[summer17['Company'].str.contains("CAPS")]
t1.insert(END,search_result)
#Creates the entry box
e1_value=StringVar()
e1=Entry(window)
e1.grid(row=0,column=0)
#Creates a button
b1=Button(window,width=10,text='search',command=search_df)
b1.grid(row=0,column=1)
#Creates a text box
t1=Text(window,height=5,width=80)
t1.grid(row=0,column=2)
window.mainloop() #end of the main window
Das ist alles und gut funktioniert, aber ich möchte der Benutzer einen Wert in das Eingabefeld eingegeben werden können und die Taste drücken und für diesen Eintrag suchen. Also ändere ich die Funktion zu
def search_df():
search_result=summer17[summer17['Company'].str.contains(e1_value.get())]
t1.insert(END,search_result)
Wenn ich dieses Feld leer lasse, gibt es den gesamten Datenrahmen zurück (wie ich vielleicht oder nicht erwarten kann). Wenn ich jedoch CAPS in das Eingabefeld setze und die Taste drücke, wird immer noch der gesamte Datenrahmen zurückgegeben.
Meine Vermutung ist, dass wenn ich den Wert aus dem Eingabefeld bekomme, gibt es eine Variable Miss Match, aber ich bin mir nicht sicher, wie ich das korrigieren würde.
mein Name ist Name Kolonne Unternehmen und Ihre Spalte Watch out ist Unternehmen –
Dieses ist fantastisch, ich würde nie die * Veranstaltung gedacht haben hinzuzufügen. Ich nehme an, dass Sie das bekommen, wenn Sie sich selbst eine Computersprache beibringen. Auch, danke für das Hinzufügen der Funktion, um nur zu drücken, und die Groß-/Kleinschreibung = False. Das sind einige Funktionen, die ich hinzufügen wollte, aber niedriger auf der Prioritätenliste war. – jon