我想基于双重搜索参数从数据框构建选择。详细说明:
我已根据一个值在给定的Dataframe中构建搜索。该值可以多次给出。差异可以在值的行中找到。这是一个例子:
TECHNIKART FSZ BEZEICHNUNG FIRMA PRODUKT_SPANNUNG KLIMA EW_KW MENGE_KW LEISTUNG_KW ÜP
GE-DSLAM 71E SAM960E (BigDSLAM) ECI 48V / 60V ETS 300 019 6,5 / 4,5 / 2,25 1.5 ----- ÜP6
GE-DSLAM 71E Hi-FOCUS M41 (Outdoor) ECI 48V / 60V 16 ETS 300 019 ----- 0.38 ----- Outdoor
GE-DSLAM 71E Hi-FOCUS M82 (THS, VDSL) ECI 48V / 60V ETS 300 019 ----- 0.95 ----- ÜP11
GE-DSLAM 71E hIX5635 (BigDSLAM) Nokia Siemens 48V / 60V ETS 300 019 n * 2,2 1.5 ----- ÜP4
我从更大的Dataframe中跟踪搜索获得此Dataframe:
key = '71E'
try:
geraet_dat2 = geraet_dat[geraet_dat.FSZ == key]
lang = len(geraet_dat2.index)
print(geraet_dat2)
现在我的想法是根据Dataframe的长度进行if-else查询。如果Dataframe有长度1,我将打印所需单元格的值。如果Dataframe长于1,则会显示以下弹出窗口:
def abfrage_selektion():
popup_selektion = Tk()
frame_selek = Frame(popup_selektion)
frame_selek.pack()
popup_selektion.configure(bg="Snow2")
popup_selektion.geometry('300x250')
popup_selektion.title('Bitte Gerät auswählen!')
LABEL_SELEKTION = LabelFrame(popup_selektion, text="Bitte Gerät auswählen: ")
LABEL_SELEKTION.place(x = 2, y = 2, width = 296, height = 246)
INFO = ttk.Label(LABEL_SELEKTION, justify=CENTER, text="Diese FSZ ist mehrfach verfügbar! \nBitte das entsprechende Gerät wählen!")
INFO.place(x = 50, y = 5)
SEPTR_1 = ttk.Separator(LABEL_SELEKTION, orient=HORIZONTAL)
SEPTR_1.place(x = 5, y = 40, width = 280)
GERAET = ttk.LabelFrame(LABEL_SELEKTION, text="Geräte: ")
GERAET.place(x = 15, y = 50, width = 260, height = 120)
LISTE = Listbox(GERAET, yscrollcommand=True)
LISTE.insert(1, '1')
LISTE.insert(2, '2')
LISTE.insert(3, '3')
LISTE.insert(4, '4')
LISTE.place(x = 5, y = 2, width = 240, height = 90)
SEPTR_2 = ttk.Separator(LABEL_SELEKTION, orient=HORIZONTAL)
SEPTR_2.place(x = 5, y = 180, width = 280)
BUTTON_OK = ttk.Button(LABEL_SELEKTION, text="OK")
BUTTON_OK.place(x = 5, y = 190, width = 280, height = 30)
对我而言,一切都很好。
但现在我不知道如何解决这一点: 在弹出窗口中,我希望从具有多个数据集的给定Dataframe中进行选择,以选择所需的数据。选择的标准应该是BEZEICHNUNG'和' PRODUKT_SPANNUNG'。
你有什么想法我能做到这一点吗?我在网上搜索但没有找到一个很好的解决方案。
谢谢你的帮助!