首页 > 解决方案 > 在 Numpy 数组中搜索子字符串值

问题描述

首先,我使用的是“Python”和最新的 Pycharm 社区版。

我目前正在使用 tkinter 开发用户界面,它向用户请求多个值 - 两个字符串值和一个整数。之后,程序应搜索 Excel 或 CSV 文件以查找这些值。不幸的是,我目前被困在第一个条目上。我已经从数据框中创建了一个 numpy 数组,因为我已经读过数组在处理大量数据时要快得多。我正在使用的最终 excel/csv 文件将包含数千行和多达 60 列。此外,enrty_name 可以是更大字符串的子字符串,搜索算法应该找到分数或全名(例如:entry: "BMW", in array([["BMW Werk", "BMW-Automobile" , "BMW_Client"], ["BMW Part1", "BMW Part2", "XS-12354" ]))。之后我想根据数组中的值进行其他计算。

示例:条目:“BMW”,在数组中([[“BMW Werk”,“Car1”,“XD-12345”],[“BMW Part1”,“exauster”,“XS-12354”]])

程序在数组中找到“BMW Werk”和“BMW Part1”,返回[“BMW Werk”、“Car1”、“XD-12345”]和[“BMW Part1”、“exauster”、“XS-12354”]

entry_name = "BMW"
   

path_for_excel = "D:\Python PyCharm\Tool\Clientlist.xslx"
client_list_df= pd.read_excel(path_for_excel , engine="openpyxl")
client_list_array= client_list_df.to_numpy()

#first check if entry_name is populated ( entry field in ui )

if entry_name == True:
    #search for sub string in string
    part_string_value = np.char.startswith(client_list_array, entry_name)
    if part_string_value in client_list_array:
        index = np.where(client_list_array == part_string_value)
        #print found value, including the other values in the list
        print(client_list_array[])   

如果客户使用正确的全名(例如“BMW Werk”),我可以检索请求的值,但是任何拼写错误都会阻碍该过程,并且某些名称键入全名非常麻烦,例如一个名称看起来像:“BMW Werk Bloemfontein, 123-45, Willows”。

希望有人能抽出时间来帮助解决我的问题。谢谢 !

标签: pythonarraysnumpy-ndarray

解决方案


推荐阅读