Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to search and select column names based on values?

Suppose I have a pandas DataFrame like this

    name    col1    col2    col3 
0   AAA     1      0        2 
1   BBB     2      1        2 
2   CCC     0      0        2

I want (a) the names of any columns that contain a value of 2 anywhere in the column (i.e., col1, col3), and (b) the names of any columns that contain only values of 2 (i.e., col3).

I understand how to use DataFrame.any() and DataFrame.all() to select rows in a DataFrame where a value appears in any or all columns, but I'm trying to find COLUMNS where a value appears in (a) any or (b) all rows.

like image 584
Al C Avatar asked Oct 18 '25 09:10

Al C


1 Answers

You can do what you described with columns:

df.columns[df.eq(2).any()]
# Index(['col1', 'col3'], dtype='object')

df.columns[df.eq(2).all()]
# Index(['col3'], dtype='object')
like image 54
mozway Avatar answered Oct 20 '25 00:10

mozway



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!