python - Pandas 数据框中的正则表达式

标签 python regex pandas

我有一个像这样的数据框像这样的列

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/

    相关文章:

    javascript - 正则表达式:使用 javascript 从字符串中获取格式为 n.n.n 的数字?

    python - 在 value_counts() 之后从分类中提取索引作为数组

    python - 更改Python的日期时间模块中的年份开始时间?

    python - Plotly:如何处理堆叠漏斗图中不同的文本大小?

    Python - 打包源分发

    python - 如何将列表转换为具有特定规则的数据框?

    python - 如何在 pandas 数据框上的 groupby 中删除 NaN 元素?

    python - Django 类型错误 : 'unicode' object is not callable

    php - RegEx 替换 HTML 标签中的所有宽度和高度值

    regex - 使用 .htaccess 重写根文件夹以外的 URL