Как пропустить пустые ячейки с помощью openpyxl?
У меня есть лист excel с городами (в алфавитном порядке) и двумя столбцами соответствующих организаций, и я пытаюсь создать новый основной список в python с подсписками, содержащими все организации в определенном городе. Тем не менее, когда я тестирую этот код, я получаю подсписки, которые содержат "нет", хотя я перепробовал все, что мог придумать, чтобы отфильтровать нетипы. По какой-то причине мне кажется, что некоторые циклы в моем коде никогда не выполняются.
В конечном счете, я планирую использовать fuzzywuzzy, чтобы использовать нечеткое сопоставление для оценки количества уникальных организаций в каждом городе (кто бы ни вошел в них, сделал ужасную работу, поэтому я просто пытаюсь получить оценку).
Если вы можете помочь, спасибо!
Что я уже пробовал:
from openpyxl import load_workbook wb = load_workbook(filename = '/Users/Me/Downloads/example.xlsx', read_only = True, data_only = True) ws = wb['Sheet1'] masterList = [] nextList = [] for i in range(2, ws.max_row): f = i + 1 try: #I was having lots of problems with errors, and this seemed to solve that. if (str((ws.cell(row = i, column = 1).value).lower())) == (str((ws. cell(row = f, column = 1).value).lower())): #checking if it's still the same city if (ws.cell(row = i, column = 2).value) != None and str((ws.cell(row = i, column = 2).value)) != "None" : #Making sure there are no nonetypes try: nextList.append(str(ws.cell(row = i, column = 2).value)) except TypeError or AttributeError or ValueError: continue elif (ws.cell(row = i, column = 3).value) != None and str((ws.cell(row = i, column = 3).value)) != "None" : #There are two columns with organizations try: nextList.append(str(ws.cell(row = i, column = 3).value)) except TypeError or AttributeError or ValueError: continue else: #in testing I realized that this part of the loop never ran, though it should have continue else: try: if (ws.cell(row = i, column = 2).value) != None: nextList.append(str(ws.cell(row = i, column = 2).value)) print("C") elif (ws.cell(row = i, column = 3).value) != None: nextList.append(str(ws.cell(row = i, column = 2).value)) print("D") else: continue except TypeError or AttributeError or ValueError: continue if nextList!= []: masterList.append(list(set(nextList))) nextList = [] else: continue except AttributeError: continue print(masterList)
Richard MacCutchan
Попробуйте проверить, нет ли их в начале каждого цикла, чтобы сразу же исключить все такие строки, которые вы найдете.