以下は私のコードです。私はDataFrameを解析し、会社の一致を保存しようとしています。しかし、ifステートメントは常にtrueを返し、データフレームcurrent_customers
にすべてが保存されますが、150行のうち約10行には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データフレームがifステートメントでどのように動作するかと関係があります。 – Jstuff
いいえ、問題は標準のPythonです。 'foo or bar or baz> 97'はfooとbarの0以外の値に対して常にTrueを返します。 –
あなたは正しいです。私はエラーを理解していませんでした。 – Jstuff