Select pandas dataframe columns which have only one unique value

China☆狼群 提交于 2020-01-05 08:03:26

问题


How to effectively select pandas dataframe columns which have only 1 unique value?

I'm aware of DataFrame and Series.nunique()


回答1:


I think need DataFrame.nunique for boolean mask and select by loc with boolean indexing:

df = pd.DataFrame({'A':list('abcdef'),
                   'B':[4,5,4,5,5,4],
                   'C':[7,8,9,4,2,3],
                   'D':[1] * 6,
                   'E':[5,3,6,9,2,4],
                   'F':list('aaaaaa')})

print (df)
   A  B  C  D  E  F
0  a  4  7  1  5  a
1  b  5  8  1  3  a
2  c  4  9  1  6  a
3  d  5  4  1  9  a
4  e  5  2  1  2  a
5  f  4  3  1  4  a

df = df.loc[:, df.nunique() == 1]
#alternatives
#df = df.loc[:, df.apply(lambda x: x.nunique()) == 1]
#df = df.loc[:, df.apply(lambda x: len(x.unique())) == 1]
print (df)
   D  F
0  1  a
1  1  a
2  1  a
3  1  a
4  1  a
5  1  a


来源:https://stackoverflow.com/questions/49099163/select-pandas-dataframe-columns-which-have-only-one-unique-value

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!