熊猫-搜索字词(与搜索字词的大小写无关)

时间:2018-11-14 13:03:33

标签: python python-3.x pandas

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

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

但是,我有一个问题,即如果搜索团队使用大写字母,它将失败。无论Dataframe中的搜索词是大写还是小写,有什么办法可以搜索整个数据框。

3 个答案:

答案 0 :(得分:2)

我认为您需要使用flags和参数re.I来忽略情况:

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)]

答案 1 :(得分:0)

您可以使用:

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

答案 2 :(得分:0)

使用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