选择只有一个唯一值的pandas dataframe列

时间:2018-03-04 18:56:18

标签: python pandas dataframe unique

如何有效选择只有1个唯一值的pandas数据帧列?

我了解DataFrame和Series.nunique()

2 个答案:

答案 0 :(得分:3)

我认为需要DataFrame.nunique表示布尔值,并loc选择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

答案 1 :(得分:0)

使用DataFrame.uniques()来计数请求轴上的不同观测值。

print(df)

df.columns[df.nunique() <= 1]

{{1}}