cqwcns 发表于 2020-12-14 22:35

python pandas逻辑运算的问题

以下代码,根据条件删除行,条件是“产品名称分类”==“宽带”,而且“产品业务属性”==“存量业务”。

# 存量剔除
    sheetOnTheWay = sheetOnTheWay.drop(
      sheetOnTheWay[(sheetOnTheWay['产品名称分类'] == '宽带') & (sheetOnTheWay['产品业务属性'] == '存量业务')].index)
运行成功。


但如果我要再加多一个条件,条件是“产品名称分类”==“宽带”或者“产品名称分类”==“电视”,而且“产品业务属性”==“存量业务”。
# 存量剔除
sheetOnTheWay = sheetOnTheWay.drop(
sheetOnTheWay[(sheetOnTheWay['产品名称分类'] == '宽带' | sheetOnTheWay['产品名称分类'] == '电视') & (
sheetOnTheWay['产品业务属性'] == '存量业务')].index)

这样就报错了,TypeError: Cannot perform 'ror_' with a dtyped array and scalar of type
应该怎么写?谢谢

Wang_DaXian 发表于 2020-12-14 22:47

sheetOnTheWay[((sheetOnTheWay['产品名称分类'] == '宽带') | (sheetOnTheWay['产品名称分类'] == '电视')) & (
sheetOnTheWay['产品业务属性'] == '存量业务')].index)

应该是漏了括号吧

xhtdtk 发表于 2020-12-14 23:05

兄弟,我可以帮你写vba

metaxman 发表于 2020-12-15 00:19

漏了括号

crazysheep118 发表于 2020-12-15 02:02


漏了括号

wanshiz 发表于 2020-12-15 07:17

感谢楼主发帖。从中有悟到点东西了。有时遇到类似的情况。

qqjaf111 发表于 2020-12-15 08:31

感谢分享!!!

rsnodame 发表于 2020-12-15 08:36

sheetOnTheWay['产品名称分类'].isin('宽带', '电视', '存量业务')

这样筛选更易读些,速度可能也更快

ammo 发表于 2020-12-15 09:38

(X|X)&X

cqwcns 发表于 2020-12-15 10:34

Wang_DaXian 发表于 2020-12-14 22:47
sheetOnTheWay[((sheetOnTheWay['产品名称分类'] == '宽带') | (sheetOnTheWay['产品名称分类'] == '电 ...

正解,谢谢指教。{:301_993:}{:301_993:}{:301_993:}
页: [1] 2
查看完整版本: python pandas逻辑运算的问题