Поиск значения подстроки в массиве Numpy

#python #arrays #numpy-ndarray

#python #массивы #numpy-ndarray

Вопрос:

Прежде всего, я использую «Python» и последнюю версию Pycharm Community edition.

В настоящее время я работаю над пользовательским интерфейсом с tkinter, который запрашивает у пользователя несколько значений — два строковых значения и одно целое число. После этого программа должна выполнить поиск в файле Excel или CSV, чтобы найти эти значения. К сожалению, в настоящее время я застрял на первой записи. Я создал массив numpy из фрейма данных, поскольку я читал, что массивы намного быстрее, когда дело доходит до работы с большими данными. Окончательный файл excel / csv, с которым я работаю, будет содержать несколько тысяч строк и до 60 столбцов. Кроме того, enrty_name может быть подстрокой большей строки, и алгоритм поиска должен найти дробь или полное имя (пример: запись: «BMW», в массиве ([[«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 PyCharmToolClientlist.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 Блумфонтейн, 123-45,Ивы».

Надеюсь, кто-нибудь найдет время, чтобы помочь с моей проблемой. Спасибо!

Комментарии:

1. Я рекомендую разбить этот вопрос на несколько новых вопросов, которые более конкретны и короче. Это поможет людям найти ответы на одну конкретную проблему