Q: drop column from dataframe if all values in this column are a specific value Data-Sample:
choice   col1  col2  col3
1    100   110   100
2    110   110   100
5    110   110   100
...
50   100   200   300

should become:
choice   col1  col2
1    100   110
2    110   110
5    110   110
...
50   100   200

trying to delete column 3 if all values except row 50 of the column are 100.
tried to use:
df['col3'].all() == 100
or
df['col3'].any() == 100

both lines neither give a result nor create an error

A: Use df.all() to return True/False whether condition meets from df.eq() and invert True to False and vice versa with invert ~ , finally filter True columns with the help of df.loc[]:
df.loc[:,~df.eq(100).all()]


  id  col1  col2
   1   100   110
   2   110   110
   3   110   110

EDIT: per edit, you can try a custom function with simiilar logic:
def myfunc(x,choice):
    x=x.set_index('choice')
    cond=x.loc[:,'col3'].drop(choice).eq(100).all()
    if cond:
        return x.drop('col3',1).reset_index()
    else:
        return x.reset_index()
myfunc(df,'50') #if choice column is an integer myfunc(df,50)


  choice   col1   col2
0      1  100.0  110.0
1      2  110.0  110.0
2      5  110.0  110.0
3     50  100.0  200.0


A: Also you can do:
df=df.T[~df.eq(100).all()].T

Output:
  id  col1  col2
   1   100   110
   2   110   110
   3   110   110

