我有一个熊猫系列,例如:x = pandas.Series([-1,20,"test"])
。
现在我想测试x
中是否包含-1而不循环整个系列。我可以将整个系列转换为字符串,然后测试是否"-1" in x
但有时我有-1.0而有时-1,依此类推,所以这不是一个好的选择。
还有其他可能吗?
答案 0 :(得分:2)
怎么样?
x.isin([-1])
输出:
0 True
1 False
2 False
dtype: bool
或者,如果您想要计算多少个实例:
x.isin([-1]).sum()
输出:
1
答案 1 :(得分:1)
答案 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