python - 如何使用熊猫查找行#并搜索基于用户输入的电子表格?
问题描述
我试图找出如何根据对 excel 文档的搜索轻松索引行号。
from tkinter import *
import pandas as pd
database = pd.ExcelFile('C:/Code/CODETEST.xlsx').parse(sheet_name="Sheet1", skiprows=0, nrows=3)
excel_data_df = pd.read_excel('CODETEST.xlsx', sheet_name='Sheet1',)
##excel_data_dfRow = pd.read_excel('CODETEST.xlsx', sheet_name='Sheet1', nrows=2)
print (excel_data_df)
##print(excel_data_df.columns.ravel())
##print(excel_data_df['Service Name'].tolist())
##Creating a service list for all services listed under "Serivce name" Column
My_Service_List = (excel_data_df['Service Name'].tolist())
My_Multicast_List = (excel_data_df['SRC DRAWING'].tolist())
column2 = excel_data_df.iloc[0, 3]
column3 = excel_data_df.iloc[:0, 4]
print (column2)
print(My_Service_List)
##print (excel_data_dfRow)
print(My_Multicast_List)
##print (database)
##Source1_Text = tk.StringVar()
root = Tk()
##Creating Entries
Group = Entry(root, width=50)
Group.grid(row=0, column=5)
Source = Entry(root, width=50)
Source.grid(row=1, column=5)
Service = Entry(root, width=50)
Service.grid(row=2, column=5)
Test = database
##if Test == Service.get():
## print ("Yes")
Source1 = Button()
def Standard_flow():
global Source1
global My_Service_List
global Test
global column2
Standard_window = Tk()
##Source1_Text = tk.StringVar()
##Source1_Text.set("Original Text")
##My_Service_ListTEST = Service.get()
Source1 = Button(Standard_window, text=column2)
Source1.grid(row=1, column=1)
Source2 = Button(Standard_window, text=column3)
Source2.grid(row=1, column=2)
Source3 = Button(Standard_window, text='DCM')
Source3.grid(row=1, column=3)
# Definining Buttons
def Okay():
hello = "Searching " + Group.get()
myLabel = Label(root, text=hello)
myLabel.grid(row=0, column=6)
def Okay2():
hello2 = "Searching " + Source.get()
myLabel2 = Label(root, text=hello2)
myLabel2.grid(row=1, column=6)
def Okay3():
hello3 = "Searching " + Service.get()
myLabel3 = Label(root, text=hello3)
myLabel3.grid(row=2, column=6)
if My_Service_List.__contains__(Service.get()):
return Standard_flow()
else:
None
##Creating Buttons
myButton_Group = Button(root, text='Group Multicast IP', command=Okay)
myButton_Source = Button(root, text='Source IP', command=Okay2)
myButton_Service = Button(root, text='Service Name', command=Okay3)
##Displaying Buttons
myButton_Group.grid(row=0, column=1)
myButton_Source.grid(row=1, column=1)
myButton_Service.grid(row=2, column=1)
root.mainloop()
我正在使用用户输入来检查 excel 文档以查看该特定列中是否存在该值,但我还想索引该服务如果找到的行#,以便我可以从同一行打印特定列。
我是否需要做一个 if 语句,沿着......
if My_Service_List.__contains__(Service.get()):
返回或索引包含输入的行#
我需要稍后在代码中使用此行 # 来打印/显示来自同一行的其他列的用户数据。
查看文档但有一些问题推动了这一点,请忽略所有在代码中没有意义的评论,我正在尝试并在我去的时候将它们注释掉。
我看到了一些关于 dt.loc 来获取索引行#
Searching = (excel_data_df.loc(Service.get()))
print (Searching)
但问题是,“服务”在尝试运行时没有定义。
“回溯(最近一次调用最后一次):文件“C:/Users/206415779/Python/FINDIT/FINDIT START”,第 37 行,在 Searching = excel_data_df.loc(Service.get()) NameError: name 'Service' is not定义"
任何帮助深表感谢。
解决方案
这就是我需要的东西。回答希望能帮助别人。
Searched_Multicast_Row_Location = excel_data_df_Sheet_1[excel_data_df_Sheet_1['Zixi Multicast'] == Group.get()].index
创建 var“Searched_Multicast_Row_Location”以存储基于来自用户的“Group.get()”的索引行。“Zixi Multicast”是用于搜索的列,我知道该值在该列中,因此用户输入他们的搜索,此 var 将查询该列并找到该值的行号。我有另一篇文章讨论设置它以搜索多个列。如果不清楚,“excel_data_df_Sheet_1”是我的 df。
推荐阅读
- python - sqlite 使用 {...} 和 ? 同时
- python - MyPy - “赋值中的不兼容类型(表达式的类型为无,变量的类型......)”
- python - 无法运行 pylinter,在 VS Code 中设置 python 解释器
- selenium - chromium-browser 错误:[670] 无法将 Xlib 置于线程模式
- python - 用 Python 翻译/替换多个字母
- python - TypeError:无效参数,不是字符串或列:pyspark UDF
- import - 如何将网站数据导入 Google 表格?
- python - 如何将系列与数据框结合起来
- ios - 诗丽吉意图处理
- azure - 单独部署嵌套资源