2017-07-24 94 views
1

所有數據幀值我有這樣一個數據幀:用if語句熊貓

col0 col1 col2 
0  0  1  1 
1  1  1  1 
2  1  0  1 
3  0  0  1 

我想使用條件語句的所有值。

聲明是1 = A,0 = B

所以我希望得到這樣的結果:

col0 col1 col2 
0 b a a 
1 a a a 
2 a b a 
3 b b a 

我知道大熊貓提供布爾函數。 (ex)dfs = df> 0

但我不知道我該如何解決這個問題。 我試過應用函數來解決這個問題。 但我失敗了。 如果你能給我一個提示,我將不勝感激。

回答

1

你在問有關選項3,但我認爲選項1是最pythonic的方式來做到這一點。

選項1

使用replace和字典:

df.replace({0:'b',1:'a'}) 

輸出:

col0 col1 col2 
0 b a a 
1 a a a 
2 a b a 
3 b b a 

選項2

建立與np.where

新的數據幀
pd.DataFrame(np.where(df,'a','b'), index=df.index, columns=df.columns) 

輸出:

col0 col1 col2 
0 b a a 
1 a a a 
2 a b a 
3 b b a 

選項3

使用applymap和lambda表達式:

df.applymap(lambda x: 'a' if x == 1 else 'b') 

輸出:

col0 col1 col2 
0 b a a 
1 a a a 
2 a b a 
3 b b a 
+0

簡單實用。非常感謝你。我能再問一個問題嗎?如果我解決這個問題來使用if語句。我能解決這個問題嗎? – ukebida

+0

是的,你也可以在applymap中使用一個方法。 –

+0

謝謝你的幫助。我學到了很多。 – ukebida