如何使用正则表达式筛选基于列条目的行?

下面是我正在使用的数据框的示意图(注意,这是一个代表性示例,并不是要演示任何列中的所有可能条目):

Name | Screen | Placeholder for other columns

Bill | GHRF (OOC) | text

Bob | GHRF (IC) | text

Sue | IRMS/CIR (OOC) | text

John | GHRF ISOFORMS IRMS CIR (OOC) | text

我试图在屏幕列中选择所有具有(OOC)的行.

通常情况下,我会用这样的dfnew = df [df [‘Column’] ==’Criteria’]来过滤数据帧,但这不适用于正则表达式.

我也尝试过dfnew = df [df [‘Screen’].filter(regex = r’OOC’,axis = 0)],我觉得这样可行,但没有.

有人可以向我解释如何使用正则表达式根据列条目选择行吗?

我想结束的是这样的:

Name | Screen | Placeholder

Bill | GHRF (OOC) | text

SUE | IRMS/CIR (OOC) | text

John | GHRF ISOFORMS IRMS CIR (OOC) | text

解决方法

DataFrame.filter过滤列名称,而不是值.你正在寻找str.contains.

dfnew = df[df['Screen'].str.contains(r'\(OOC\)')]

或者,如果您不需要正则表达式,请将其关闭

dfnew = df[df['Screen'].str.contains(r'(OOC)',regex=False)]
print(dfnew)
   Name                        Screen
0  Bill                    GHRF (OOC)
2   Sue                IRMS/CIR (OOC)
3  John  GHRF ISOFORMS IRMS CIR (OOC)

如果你打算在dfnew上做更多的索引/作业,我建议你改用它

dfnew = df[df['Screen'].str.contains(r'\(OOC\)')].copy()

以后要避免使用SettingWithcopyWarning.

相关文章

正则替换html代码中img标签的src值在开发富文本信息在移动端...
正则表达式
AWK是一种处理文本文件的语言,是一个强大的文件分析工具。它...
正则表达式是特殊的字符序列,利用事先定义好的特定字符以及...
Python界一名小学生,热心分享编程学习。
收集整理每周优质开发者内容,包括、、等方面。每周五定期发...