2015-12-14 83 views
2

假設我們有一個定義如下的Pandas DataFrame f。我正在嘗試創建一個掩碼來選擇列'xx'中值爲'a'或'b'的所有行(我想選擇第0,1,3,4行)。如何創建具有多個替代值的掩碼(Pandas DataFrame)

f = pd.DataFrame([['a', 'b','c','a', 'b','c'],['1', '2','3', '4', '5','6', ]]) 
f = f.transpose() 
f.columns = ['xx', 'yy'] 
f 

    xx yy 
0 a 1 
1 b 2 
2 c 3 
3 a 4 
4 b 5 
5 c 6 

有沒有什麼優雅的方式來做到這一點在熊貓? 我知道選擇f.xx =='a'的所有行,我們可以做f [f.xx =='a']。雖然我還沒有弄清楚如何用f.xx選擇行是'a'還是'b'。謝謝。

回答

3

你可以使用isin

print(f[(f["xx"].isin(("a","b")))]) 

,這將給你:

xx yy 
0 a 1 
1 b 2 
3 a 4 
4 b 5 

如果你真的想要一個面具,你可以使用或|

mask = (f["xx"] == "a") | (f["xx"] == "b") 

print(f[mask]) 

,這將給你相同的輸出:

xx yy 
0 a 1 
1 b 2 
3 a 4 
4 b 5 
+0

完美!你解決了我的問題。謝謝! – Bin

+0

沒有問題,不客氣。 –

相關問題