我有以下代码在整个 Dataframe 中搜索字符串。df[df.apply(lambda x: x.astype(str).str.contains(search)).any(axis=1)]然而,我有一个问题,如果搜索团队在大写字母中,它会失败。有什么方法可以搜索整个 Dataframe,而不管 Dataframe 中的搜索词是大写还是小写。
3 回答
幕布斯6054654
TA贡献1876条经验 获得超7个赞
我相信你需要参数flagswith re.Ifor ignore cases:
import re
df[df.apply(lambda x: x.astype(str).str.contains(search, flags=re.I)).any(axis=1)]
另一种解决方案是转换每一列和search字符串:
df[df.apply(lambda x: x.astype(str).str.lower().str.contains(search.lower())).any(axis=1)]
慕仙森
TA贡献1827条经验 获得超7个赞
使用 applymap 应用于数据帧的每个单元格。
>>> df = pd.DataFrame({'x':['this','is'], 'y':['test', 'Hi']})
>>> search = 'HI'
>>> df.applymap(lambda x: search.lower() in x.lower())
x y
0 True False
1 False True
如果你需要每一行
>>> df.applymap(lambda x: search.lower() in x.lower()).any(axis=1)
0 True
1 True
dtype: bool
慕慕森
TA贡献1856条经验 获得超17个赞
您可以使用:
df[df.applymap(str.lower).apply(lambda x: x.astype(str).str.contains(search)).any(axis=1)]
添加回答
举报
0/150
提交
取消