我有一个像这样的数据框像这样的列
COL1
RED[10%(INC)]
RED[12%(INC)]
我想创建 col2
作为这个COL2
10
12
你能帮我找到好的正则表达式吗?我试过这个:
RED\[(\d+\.\d+) %INC\]
但它不会走路。
最佳答案
如果你想使用你的正则表达式并且只在指定的上下文中提取数字,你可以使用
df['COL2'] = df['COL1'].str.extract(r'RED\[(\d+(?:\.\d+)?)%\[INC]]', expand=False)
见 regex demo .详情
RED\[
- 一个 RED[
字符串 (\d+(?:\.\d+)?)
- 捕获组 1:一个或多个数字后跟一个点和一个或多个数字的可选序列 %\[INC]]
- 一个 %[INC]]
文字串。 您还可以探索其他选项:
df['COL1'].str.extract(r'(\d+(?:\.\d+)?)%', expand=False)
[
拆分,获取第二项并删除 %
来自:df['COL1'].str.split("[").str[1].str.replace("%", "")
关于python - Pandas 数据框中的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65091515/