+-
python – 如何确定Pandas列是否包含特定值
我试图确定Pandas列中是否有一个具有特定值的条目.我尝试用df [‘id’]中的if来做到这一点.我认为这是有效的,除非我给它提供了一个我知道不在df [‘id’]列43中的值,它仍然返回True.当我对仅包含与缺失的id df匹配的条目的数据框子集[df [‘id’] == 43]时,显然没有条目.如何确定Pandas数据框中的列是否包含特定值以及为什么我的当前方法不起作用? (仅供参考,当我在这个 answer中使用类似的问题时,我遇到同样的问题).
最佳答案
in of a Series检查值是否在索引中:

In [11]: s = pd.Series(list('abc'))

In [12]: s
Out[12]: 
0    a
1    b
2    c
dtype: object

In [13]: 1 in s
Out[13]: True

In [14]: 'a' in s
Out[14]: False

一种选择是看它是否在unique值:

In [21]: s.unique()
Out[21]: array(['a', 'b', 'c'], dtype=object)

In [22]: 'a' in s.unique()
Out[22]: True

或者是一个python集:

In [23]: set(s)
Out[23]: {'a', 'b', 'c'}

In [24]: 'a' in set(s)
Out[24]: True

正如@DSM所指出的那样,它可能更有效(特别是如果你只是为一个值做这个),只需直接使用这些值:

In [31]: s.values
Out[31]: array(['a', 'b', 'c'], dtype=object)

In [32]: 'a' in s.values
Out[32]: True
点击查看更多相关文章

转载注明原文:python – 如何确定Pandas列是否包含特定值 - 乐贴网