【发布时间】:2022-01-09 00:43:48
【问题描述】:
几天前我在这里问了一个类似的问题,这对我很有帮助!我想要构建的一个新挑战是进一步开发正则表达式模式以在此迭代中查找特定格式,我认为我已经使用正则表达式 101 来构建/测试正则表达式代码解决了这个问题,但是在 Python 中应用时收到“模式不包含组” '。下面是一个测试 df,以及结果应该是什么样的/通过 StackOverflow 提供的代码的图像,该代码仅适用于数字。
df = pd.DataFrame([["{1} | | Had a Greeter welcome clients {1.0} | | Take measures to ensure a safe and organized distribution {1.000} | | Protected confidentiality of clients (on social media, pictures, in conversation, own congregation members receiving assistance, etc.)",
"{1.00} | | Chairs for clients to sit in while waiting {1.0000} | | Take measures to ensure a safe and organized distribution"],
["{1 } | Financial literacy/budgeting {1 } | | Monetary/Bill Support {1} | | Mental Health Services/Counseling",
"{1}| | Clothing Assistance {1 } | | Healthcare {1} | | Mental Health Services/Counseling {1} | | Spiritual Support {1} | | Job Skills Training"]
] , columns = ['CF1', 'CF2'])
这是仅适用于数字的迭代代码。我用我的新正则表达式模式更改了模式搜索,但它不起作用。
原码:(df.stack().str.extractall('(\d+)')[0] .groupby(level=[0,1]).sum().unstack())
新代码(无法识别模式):(df.stack().str.extractall(r'(?<=\{)[\d+\.\ ]+(?=\})')[0].astype(int) .groupby(level=[0,1]).sum().unstack())
**在测试 df 中,您将看到我只想捕获“{}”之间的数字,并且在我想要捕获和求和的数字后面有小数和空格的混合。新模式在应用程序中不起作用,所以任何帮助都会很棒! **
【问题讨论】: