简体   繁体   中英

How to check in which column is certain value in pandas.DataFrame?

I have DataFrame in Python like below:

df = pd.DataFrame({"col1"  : ["a", "b", "c"], "col2" : ["a", "d", "e"], "col3" : ["r", "t" , "g"]})

And I would like to check in which columns is value "a" (of course in "col1" and "col2"). How can I check it?

(df=='a').any()

col1     True
col2     True
col3    False

If need columns names in list compare all values by DataFrame.eq with DataFrame.any for check if at least one True (match) per columns, last filter columns names:

c = df.columns[df.eq('a').any()].tolist()
print (c)
['col1', 'col2']

If need filter columns to new DataFrame use DataFrame.loc :

df1 = df.loc[:, df.eq('a').any()]
print (df1)
  col1 col2
0    a    a
1    b    d
2    c    e

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM