如何检查数据框中的列是否仅包含一组特定的值

时间:2016-04-07 11:31:38

标签: python-3.x pandas dataframe

我需要确定数据框中某个列(df['some_col'])的值是否只包含一组特定的值(例如'a',空字符串和NaN即{{1 }})。我可以考虑使用["a","",NaN]列出所有唯一值,并检查是否有任何值不在预定义集中,但我不确定unique是否被视为值。

1 个答案:

答案 0 :(得分:2)

是的,您可以使用unique()

In [35]: w
Out[35]:
     word
0  word03
1     NaN
2  word04
3
4  word02
5  word01
6     NaN
7  word01
8  word01
9  word01

In [36]: w.word.unique()
Out[36]: array(['word03', nan, 'word04', '', 'word02', 'word01'], dtype=object)

所以使用集合我们可以看到DF中允许/预期的字符串和字符串之间的区别:

In [45]: allowed_words = set(['','word01', np.nan])

In [46]: set(w.word.unique()) - allowed_words
Out[46]: {'word02', 'word03', 'word04'}