我试图从这个df中删除列'DB Serial'包含字符*的所有行:
DB Serial
0 13058
1 13069
2 *13070
3 13070
4 13044
5 13042
Run Code Online (Sandbox Code Playgroud)
我在用:
df = df[~df['DB Serial'].str.contains('*')]
Run Code Online (Sandbox Code Playgroud)
但我得到这个错误:
raise error, v # invalid expression
error: nothing to repeat
Run Code Online (Sandbox Code Playgroud)
逃生*
的\
原因*
被解释为正则表达式:
'*'使得到的RE匹配前面RE的0或更多次重复
df = df[~df['DB Serial'].str.contains('\*')]
print (df)
DB Serial
0 13058
1 13069
3 13070
4 13044
5 13042
Run Code Online (Sandbox Code Playgroud)
如果还得到:
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
Run Code Online (Sandbox Code Playgroud)
如果可能的NaN
s值:
df = df[~df['DB Serial'].str.contains('\*', na=False)]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4406 次 |
最近记录: |