pandas dataframe remove constant column

dataframe, pandas, python

Solution

I believe this option will be faster than the other answers here as it will traverse the data frame only once for the comparison and short-circuit if a non-unique value is found.

>>> df

   0  1  2
0  1  9  0
1  2  7  0
2  3  7  0

>>> df.loc[:, (df != df.iloc[0]).any()] 

   0  1
0  1  9
1  2  7
2  3  7

Problem

I have a dataframe that may or may not have columns that are the same value. For example ``` row A B 1 9 0 2 7 0 3 5 0 4 2 0 ``` I'd like to return just ``` row A 1 9 2 7 3 5 4 2 ``` Is there a simple way to identify if any of these columns exist and then remove them?

Original source

Related problems