我试图确定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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。