+-

我试图确定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列是否包含特定值 - 乐贴网