#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. Я рекомендую разбить этот вопрос на несколько новых вопросов, которые более конкретны и короче. Это поможет людям найти ответы на одну конкретную проблему