我试图删除此 df 中“DB Serial”列包含字符 * 的所有行:
DB Serial
0 13058
1 13069
2 *13070
3 13070
4 13044
5 13042
我在用:
df = df[~df['DB Serial'].str.contains('*')]
但我收到此错误:
raise error, v # invalid expression
error: nothing to repeat
Escape *
by \
因为*
被解释为regex https://docs.python.org/2/library/re.html:
'*'导致生成的 RE 与前面的 RE 重复 0 次或多次
df = df[~df['DB Serial'].str.contains('\*')]
print (df)
DB Serial
0 13058
1 13069
3 13070
4 13044
5 13042
如果还得到:
类型错误:一元 ~ 的操作数类型错误:'float'
然后将列投射到string
,因为混合值 - 数字与字符串:
df = df[~df['DB Serial'].astype(str).str.contains('\*')]
print (df)
DB Serial
0 13058
1 13069
3 13070
4 13044
5 13042
如果可能的话NaN
值:
df = df[~df['DB Serial'].str.contains('\*', na=False)]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)