Ниже мой код. Я пытаюсь проанализировать DataFrame и хранить совпадения компаний. Однако оператор if всегда возвращает true, и все сохраняется в dataframe current_customers
, хотя около 10 из моих 150 строк имеют значение> 97. Ниже мой код является образцом моих данных.Сложный оператор if возвращает все верно
current_customers = pandas.DataFrame()
potential_customers = pandas.DataFrame()
for i in range(0, len(FDA_useful_companies_bing)):
if combined_data['match token sort'].iloc[i] or combined_data['match ratio'].iloc[i] or combined_data['match partial ratio'].iloc[i] > 97:
current_customers = current_customers.append(combined_data.ix[i,4::])
else:
potential_customers = potential_customers.append(combined_data.ix[i,4::])
Пример моих данных
Company City State ZIP FDA Company FDA City FDA State FDA ZIP Token sort ratio match token sort Ratio match ratio Partial Ratio match partial ratio
NOVARTIS Larchwood IA 51241 HELGET GAS PRODUCTS INC Kansas City MO 64116 AIR PRODUCTS CHEMICALS INC 73 OCEANIC MEDICAL PRODUCTS INC 59 LUCAS INC 78
BOEHRINGER INGELHEIM VETMEDICA INC Sioux Center IA 51250 SOUTHWEST TECHNOLOGIES INC North Kansas City MO 64116 SOUTHWEST TECHNOLOGIES 100 SOUTHWEST TECHNOLOGIES 92 SOUTHWEST TECHNOLOGIES 100
EDIT: Кроме того, если есть более эффективный способ сделать это, я хотел бы услышать.
Я не считаю, что мой дубликат, потому что мой связано с тем, как pandas dataframe работает с оператором if. – Jstuff
Нет, проблема стандартная Python. 'foo или bar или baz> 97' всегда будет возвращать значение True для значений, отличных от 0, foo и bar. –
Вы правы. Я не понял ошибку. – Jstuff