我正在寻找一个等效于df.any()和df.all()的方法,它们适用于不在数据帧中的序列。 我宁愿不使用|和&运算符,因为我想以更易读的方式将结果与其他方法链接起来。
例如,我有两个长度相同的布尔值系列-s1,s2。 我希望能够执行以下操作:
pd.any(s1,s2)
这将返回与以下结果相同的结果:
s1 | s2
我还找到了一种进行“和”比较的方法:
s1.add(s2)
上面的语句返回与以下结果相同的结果:
s1和s2
在我看来,可能会有更明确的方式来执行“与”操作。
谢谢!
答案 0 :(得分:2)
使用numpy.logical_and
或numpy.logical_or
:
np.logical_and(s1, s2)
或者:
np.logical_or(s1, s2)
如果有多个Series
,请添加reduce
:
np.logical_and.reduce([s1, s2, s3])
最后一次需要新的Series
使用构造函数:
pd.Series(np.logical_and(s1, s2), index=s1.index)
通知:
这些方法会忽略序列索引,因此必须对序列进行排序,然后将它们传递给两个索引都相同的方法。