【发布时间】:2016-08-16 10:50:07
【问题描述】:
我有一个 DataFrame 和一个系列:
np.random.seed(0)
df = pd.DataFrame(np.random.binomial(1, 0.3, (5, 4)).astype(bool))
ser = pd.Series(np.random.binomial(1, 0.3, 5).astype(bool))
df
出去:
0 1 2 3
0 假 真 假 假
1 假 假 假 真
2 真假真假
3 假 真 假 假
4 假 真 真 真
SER
出去:
0 真
1 对
2 错误
3 真
4 错误
数据类型:布尔
我想逐行比较每一列与系列,看看这两个元素是否为真。结果应该是:
0 1 2 3 0 假 真 假 假 1 假 假 假 真 2 假 假 假 假 3 假 真 假 假 4 假 假 假 假
我可以使用df.mul(ser, axis=0) 执行此操作,但会引发警告:
UserWarning:在 Python 空间中进行评估,因为 '*' 运算符是 numexpr 不支持 bool dtype,请改用 '&'
我猜这会减慢操作速度。有其他选择吗?
【问题讨论】: