Pandas - 搜索词(不考虑搜索词的大小写)

我有以下代码在整个 Dataframe 中搜索字符串。

df[df.apply(lambda x: x.astype(str).str.contains(search)).any(axis=1)]

然而,我有一个问题,如果搜索团队在大写字母中,它会失败。有什么方法可以搜索整个 Dataframe,而不管 Dataframe 中的搜索词是大写还是小写。


拉莫斯之舞
浏览 249回答 3
3回答

幕布斯6054654

我相信你需要参数flagswith re.Ifor ignore cases:import redf[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)]

慕仙森

使用 applymap 应用于数据帧的每个单元格。>>> df = pd.DataFrame({'x':['this','is'], 'y':['test', 'Hi']})>>> search = 'HI'>>> df.applymap(lambda x: search.lower() in x.lower())       x      y0   True  False1  False   True如果你需要每一行>>> df.applymap(lambda x: search.lower() in x.lower()).any(axis=1)0    True1    Truedtype: bool

慕慕森

您可以使用:df[df.applymap(str.lower).apply(lambda x: x.astype(str).str.contains(search)).any(axis=1)]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python