pandas select rows by condition for all of dataframe columns

germanjke :

I have a dataframe

d = {'col1': [1, 2], 'col2': [3, 4], 'col3' : [5,6]}
df = pd.DataFrame(data=d)
df
    col1    col2    col3
0      1       3       5
1      2       4       6

for example, i need select all rows with value = 1 so my code is:

df[df['col1']==1]
  col1  col2    col3
0    1     3       5

but how i can choose not only 'col1' but all columns, i have try this code:

for col in df.columns:
    print(df[df[col]==1])

but outpus not in pandas dataframe's view:

   col1  col2  col3
 0    1     3     5
        Empty DataFrame
        Columns: [col1, col2, col3]
        Index: []
        Empty DataFrame
        Columns: [col1, col2, col3]
        Index: []

can i go over all the columns and get view like in dataframe?

anky_91 :

You can use df.eq to check if any value in the df is equal to 1 and using df.any on axis=1 , this will return True for all rows where any of the column values have 1. Finally use boolean indexing

output = df[df.eq(1).any(axis=1)]

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=33194&siteId=1