2017-05-30 107 views
0

條件,我有以下數據集:蟒蛇值上兩列

id Rank condition1 condition2 result 
1 2  50   0   0 
1 2  50   0   0 
2 55  50   1   0 
2 55  50   1   0 

我想要的結果列於1條件的兩列條件1和條件2

結果應該成爲1,如果rank <= condition 1 AND if condition2 = 0

id Rank condition1 condition2 result 
1 2  50   0   1 
1 2  50   0   1 
2 55  50   1   0 
2 55  50   1   0 

我曾嘗試下面的代碼,但得到「無效語法」。

df["result"][df[condition2] = 0 & df["Rank"]<= df["condition1"]] = 1 

有人能幫我找到錯誤嗎?我知道如何使這個命令有條件的條件,但我不知道如何將第二個條件與AND命令結合在一起。

回答

3

您需要使用==平等檢查,單=是分配不是比較:

df["result"][(df['condition2'] == 0) & (df["Rank"]<= df["condition1"])] = 1 

你也忘了'condition2和我包括一些圓括號單獨的條件,因爲&具有較高優先於==<=

熊貓還提供了比較的方法(在這種情況下eqle),所以你也可以使用:

df["result"][df['condition2'].eq(0) & df['Rank'].le(df['condition1'])] = 1