2017-05-27 90 views
-1

我有一個奇怪的錯誤發生,我無法弄清楚。熊貓拋出錯誤循環使用If/Then/Else語句

希望得到一些幫助。

我有一個if語句在我的代碼如下:

if my_df.ix[my_df['SOMEINTEGER'] == another_df.ix[i,'SOMECOMPARABLEINTEGER'],'SOMECOLUMN'] == 'I': 

    *** DO SOMETHING *** 
    i+=1 

什麼這個說法確實是選擇my_df行其中「SOMEINTEGER」在another_df.ix[i,'SOMECOMPARABLEINTEGER']等於整數值和檢查,看看是否列值在'SOMECOLUMN'in my_df等於'I'

如果我將if語句作爲一行代碼運行,並將值設置爲與數據框索引值相對應的整數,則該函數有效。

如果我包括一個更大的迭代這一點,如果statment(和similiarly移動遞增我出來,因此適當地增加我得到以下錯誤:

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all(). 

我無法將錯誤源隔離。

任何幫助/洞察力提前瞭解

感謝

+0

可以有在my_df幾行,其中「SOMEINTEGER」等於在another_df.ix整數值[I「SOMECOMPARABLEINTEGER」],所以你是一個點進行比較的陣列。 – alex314159

+0

你想做什麼?它看起來像你的括號是不正確的。 –

回答

0

答案被包含在這篇文章:。

Evaluating pandas series values with logical expressions and if-statements

它,我想,使這是一個重複的問題(雖然我只是巧合)做了很多搜索後,在此絆倒了。

顯然這個問題是熊貓的一個特點。以這種方式與熊貓結構結合的if語句產生一個Pandas系列對象。解決方法是加.any()爲:

if my_df.ix[my_df['SOMEINTEGER'] == another_df.ix[i,'SOMECOMPARABLEINTEGER'],'SOMECOLUMN'].any() == 'I':