2015-04-23 241 views
0

選擇行假設一個大熊貓據幀大熊貓根據條件

d = pd.DataFrame({'a':[1,2,3], 'b':[4,5,6], 'c':[7,8,9]}) 

如何可以選擇所有的行,使得'a'>1, 'b'<6 and 7<='c'<=9

它應該導致這種情況等同於數據幀的第二行。 在解決方案中假設一個帶有k鍵的通用數據框。

回答

2

你可以使用query

In [233]: d.query('a>1 and b<6 and 7<=c<=9') 
Out[233]: 
    a b c 
1 2 5 8 

另外,你可以做

In [234]: d[(d.a>1) & (d.b<6) & (d.c>=7) & (d.c<=9)] 
Out[234]: 
    a b c 
1 2 5 8 

而且,pd.eval()作品以及含表達大陣列

In [235]: d[pd.eval('(d.a>1) & (d.b<6) & (d.c>=7) & (d.c<=9)')] 
Out[235]: 
    a b c 
1 2 5 8 
+0

非常感謝答案,但我仍然有問題。我編輯了這個問題 – Donbeo

+0

可以粘貼幾行數據/框? – Zero

+0

我編輯了問題 – Donbeo

1

可以直接索引數據幀,把所有的條件放在圓括號內:

d[(d.a > 1) & (d.b < 6) & (d.c <= 9) & (d.c >= 7)] 

對於'或'條件,在條件之間使用管道|