【发布时间】:2016-04-07 11:31:38
【问题描述】:
我需要确定数据框中某列 (df['some_col']) 的值是否仅包含一组特定值(例如“a”、空字符串和NaN,即["a","",NaN])。我可以考虑使用unique 列出所有唯一值并检查是否有任何值不在预定义集中,但我不确定NaN 是否被视为一个值。
【问题讨论】:
标签: python-3.x pandas dataframe
我需要确定数据框中某列 (df['some_col']) 的值是否仅包含一组特定值(例如“a”、空字符串和NaN,即["a","",NaN])。我可以考虑使用unique 列出所有唯一值并检查是否有任何值不在预定义集中,但我不确定NaN 是否被视为一个值。
【问题讨论】:
标签: python-3.x pandas dataframe
是的,您可以为此使用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'}
【讨论】: