![](/img/trans.png)
[英]How to drop rows from a pandas dataframe where any column contains a symbol I don't want
[英]Pandas drop rows where column contains *
我试图从这个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
Esce *
by \\
因为*
被解释为正则表达式 :
'*'使得到的RE匹配前面RE的0或更多次重复
df = df[~df['DB Serial'].str.contains('\*')]
print (df)
DB Serial
0 13058
1 13069
3 13070
4 13044
5 13042
如果还得到:
TypeError:一元的坏操作数类型〜:'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)]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.