繁体   English   中英

选择只有一个唯一值的 Pandas 数据框列

[英]Select pandas dataframe columns which have only one unique value

如何有效地选择只有 1 个唯一值的 Pandas 数据框列?

我知道 DataFrame 和 Series.nunique()

我认为需要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

使用 DataFrame.uniques() 对请求的轴上的不同观察进行计数。

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)

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM