微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

相关推荐