测试值是否包含在具有混合类型的Pandas系列中

时间:2018-04-27 14:36:40

标签: python pandas

我有一个熊猫系列,例如:x = pandas.Series([-1,20,"test"])

现在我想测试x中是否包含-1而不循环整个系列。我可以将整个系列转换为字符串,然后测试是否"-1" in x但有时我有-1.0而有时-1,依此类推,所以这不是一个好的选择。

还有其他可能吗?

3 个答案:

答案 0 :(得分:2)

怎么样?
x.isin([-1])

输出:

0     True
1    False
2    False
dtype: bool

或者,如果您想要计算多少个实例:

x.isin([-1]).sum()

输出:

1

答案 1 :(得分:1)

x.isin([-1])

给我:

0     True
1    False
2    False
dtype: bool

您可以参考docs了解详情。

答案 2 :(得分:1)

我认为你可以做这样的事情来处理看起来像字符串和整数的数据。 Pandas系列都是单一数据类型。

x = pd.Series([-1,20,"test","-1.0"])

print(x)

0      -1
1      20
2    test
3    -1.0
dtype: object

(pd.to_numeric(x, errors='coerce') == -1).sum()

注意:任何可以转换为数字的值都将返回NaN。

输出

2

如果您只想查看x中是否出现-1,那么您可以使用

(pd.to_numeric(x, errors='coerce') == -1).sum() > 0

输出:

True