Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Use a list of values to select rows from a Pandas dataframe

Let’s say I have the following Pandas dataframe:

df = DataFrame({'A' : [5,6,3,4], 'B' : [1,2,3, 5]}) df       A   B 0    5   1 1    6   2 2    3   3 3    4   5 

I can subset based on a specific value:

x = df[df['A'] == 3] x       A   B 2    3   3 

But how can I subset based on a list of values? - something like this:

list_of_values = [3,6]  y = df[df['A'] in list_of_values] 

To get:

     A    B 1    6    2 2    3    3 
like image 474
zach Avatar asked Aug 23 '12 16:08

zach


People also ask

How do you filter rows from a DataFrame based on a list?

DataFrame. isin() method is used to filter/select rows from a list of values. You can have the list of values in variable and use it on isin() or use it directly.

How do I get a list of values from a DataFrame in Python?

values. tolist() you can convert pandas DataFrame Column to List. df['Courses'] returns the DataFrame column as a Series and then use values. tolist() to convert the column values to list.


1 Answers

You can use the isin method:

In [1]: df = pd.DataFrame({'A': [5,6,3,4], 'B': [1,2,3,5]})  In [2]: df Out[2]:    A  B 0  5  1 1  6  2 2  3  3 3  4  5  In [3]: df[df['A'].isin([3, 6])] Out[3]:    A  B 1  6  2 2  3  3 

And to get the opposite use ~:

In [4]: df[~df['A'].isin([3, 6])] Out[4]:    A  B 0  5  1 3  4  5 
like image 153
Wouter Overmeire Avatar answered Sep 28 '22 03:09

Wouter Overmeire