[英]Sanitizing input to be used in pandas query with the str.contains method
我如何清理下面代码中的输入,以便它可用于查询数据集df
?
query = f"`{field_name}`.str.contains('''{input()}''', case=False)"
df.query(query)
上面代码的主要问题是,当输入包含三重引号或反斜杠时,它会抛出错误。 还要记住 dataframe 在某些单元格中也包含反斜杠,因此我希望查询也能够执行该搜索(例如,如果输入是a\s
我希望查询返回包含a\s
例如aaaa\saaaaa
a\s
一个匹配项)。
假设field_name
已给出并且不会造成麻烦。
如果我理解正确的话,你想要这个:
import pandas as pd
import numpy as np
s1 = pd.Series(['Mouse', 'dog a\s', 'house and parrot', '23', np.NaN, 'aaaa\saaaaa', ' \ """ '])
s2 = s1.str.contains(input('input: '), regex=False)
print(s2)
input: a\s
0 False
1 True
2 False
3 False
4 NaN
5 True
6 False
dtype: object
Process finished with exit code 0
input: """
0 False
1 False
2 False
3 False
4 NaN
5 False
6 True
dtype: object
Process finished with exit code 0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.