Я хотел создать функцию, используя python, чтобы проверить, существует ли число (полученное на основе строки файла) или нет в Excel, используя pandas, если число существует, оно будет делать что-то вроде ".. . "зарегистрирован" и выполняет некоторую функцию, и наоборот.
Код, который я пытался использовать, выглядит следующим образом:
from tkinter import filedialog
import pandas as pd
import re
file = filedialog.askopenfilename(initialdir="C:/", title="choose file", filetypes=(("xlsx", "*.xlsx"), ("xls", "*.xls")))
name = (r'/(\w+)_(\w+)_excel.xlsx')
number = re.search(name, file).group(2)
references = pd.read_excel(r'C:/example.xlsx')
if float(number) == references:
print(number + " is registered") #and more function
else:
print(number + " is not registered") #and more function
Когда я использую этот код, он возвращает ValueError:
ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
Я немного посмотрел на это и обнаружил, что (насколько я понимаю) это происходит потому, что функция недостаточно специфицирована c и может возвращать как true, так и false, а затем я попытался использовать .any
или .all
после references
в функции, но каким-то образом она продолжает возвращать false, даже если число существует в Excel.
Когда я попытался проверить это с помощью print(number == references)
, он покажет список и скажет мне, где находятся соответствующие данные, но почему-то, когда я попытался сделать из него функцию, он продолжает возвращать false .
Ссылки Excel содержат только «Заголовок» в ячейке A1, а остальное - просто число, зарегистрированное в нем.
Я попытался найти его и нашел кое-что о pandas.DataFrame.isin
, но я Я не понимаю, как поставить это как функцию, и я не думаю, что смогу использовать ее в своей проблеме.
Извините, если это довольно простой вопрос, но почему-то я не могу найти ответ на этот вопрос, также я Новое в python и английском sh не мой родной язык.