加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-14 05:58:46 所属栏目:百科 来源:网络整理
导读:下面是我正在使用的数据框的示意图(注意,这是一个代表性示例,并不是要演示任何列中的所有可能条目): Name | Screen | Placeholder for other columnsBill | GHRF (OOC) | textBob | GHRF (IC) | textSue | IRMS/CIR (OOC) | textJohn | GHRF ISOFORMS IRMS
下面是我正在使用的数据框的示意图(注意,这是一个代表性示例,并不是要演示任何列中的所有可能条目):

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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读