I have a dataframe。
   A  B
0  2  3
1  2  4
2  3  5
If the value of a column has more than 2 different values, I will remove. expect the output:
   A
0  2
1  2
2  3
I have a dataframe。
   A  B
0  2  3
1  2  4
2  3  5
If the value of a column has more than 2 different values, I will remove. expect the output:
   A
0  2
1  2
2  3
 
    
    You can use .nunique() and .loc, passing a boolean 
df = pd.DataFrame({'A': {0: 2, 1: 2, 2: 3}, 'B': {0: 3, 1: 4, 2: 5}})
df.loc[:, (df.nunique() <= 2)]
   A
0  2
1  2
2  3
An alternative approach (credit to this answer):
criteria = df.nunique() <= 2
df[criteria.index[criteria]]
 
    
    Use for loop and value_count to get the result:-
df = pd.DataFrame(data= {'A':[2,2,3], 'B':[3,4,5]})
for var in df.columns:
    result = df[var].value_counts()
    if len(result)>2:
        df.drop(var, axis=1,inplace=True)
df
Output
    A
 0  2
 1  2
 2  3
