2017-01-27 4 views
3

Я довольно новичок в python. Я пытаюсь фильтровать строки в data.frame как я в R.Несколько фильтров Python Data.frame

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

работы, но

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

дает мне ошибку

«Значение истинности Серия неоднозначна "

Можете ли вы предложить мне правильный синтаксис для написания похожих вариантов?

+0

Вы можете включать в себя оригинальную dataframe? Вывод 'print (df.head())'? – MYGz

ответ

3

Вы можете использовать функцию pandas 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 
Смежные вопросы