2017-12-06 37 views
0
for i, row in lst.iterrows(): 
    value1 = a 
    value2 = b 
    result = 12345 

    if df[(df['column1'] == value1) & (df['column2'] == value2)]: 
      df['column_result'] == result 

print df 

は、私がデータフレームにcolumn1のは、value1とcolumn2のは、その行の結果に値2 塗りつぶしに等しい等しい行を検索します。

私はこのエラーが表示されます。 とValueError:データフレームの真理値があいまいです。 a.emptyを使用して、a.bool()、a.item()、a.any()またはa.all()。

答えて

0

orand Pythonの文は、真理値を必要とします。あなたは、「ビット単位」|(または)または&(と)操作を使用する必要がありますので、パンダの場合、これらはあいまいとみなされています。これらは、生成するデータ構造のこれらの種類のオーバーロードされ

result = result[(result['var']>0.25) | (result['var']<-0.25)] 

要素を単位or(またはand) 。ここで

詳細:Truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all()

1

df.loc[(df['column1'] == value1) & (df['column2'] == value2), 'column_result'] = result 
+0

パーフェクトをお試しください!どうもありがとうございます! –

+0

@ChristianVandeKoppelは、答えを受け入れる考えるか、それが問題をクローズするのに役立ちます。 – Vaishali