2017-01-27 1 views
3

저는 파이썬을 처음 접했습니다. 나는 R.에서다중 필터 Python Data.frame

sub_df = df[df[main_id]==3] 

작품을 같이 data.frame에 행을 필터링하기 위해 노력하고있어,하지만

df[df[main_id] in [3,7]] 

는 나에게의

"진실 값을 오류 제공 시리즈가 모호합니다 "

비슷한 선택을 올리십시오 정확한 구문을 제안 해 주시겠습니까?

+0

는 원래 dataframe를 포함 할 수 있습니다? 'print (df.head())'의 출력? – MYGz

답변

1
df[df[main_id].apply(lambda x: x in [3, 7])] 
3

팬더 isin 기능을 사용할 수 있습니다. 이것은 다음과 같을 것이다 :

import pandas as pd 

df = pd.DataFrame({'A': [1, 2, 3], 'B': ['a', 'b', 'f']}) 
df[df['A'].isin([2, 3])] 

주는 :

A B 
1 2 b 
2 3 f 
+0

고마워, 이것이 결의안이었다. – Carlo

1

또 다른 솔루션을 :

In [60]: df = pd.DataFrame({'main_id': [0,1, 2, 3], 'x': list('ABCD')}) 

In [61]: df 
Out[61]: 
    main_id x 
0  0 A 
1  1 B 
2  2 C 
3  3 D 

In [62]: df.query("main_id in [0,3]") 
Out[62]: 
    main_id x 
0  0 A 
3  3 D