gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-30 02:25:05 25 4
gpt4 key购买 nike

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

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

我正在尝试选择 Screen 中具有 (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

关于python - 如何使用正则表达式筛选基于列条目的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50414552/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com