如何使用正则表达式筛选基于列条目的行?
发布时间: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. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |