代码之家  ›  专栏  ›  技术社区  ›  Nono_sad

使用正则表达式在列中提取str

  •  0
  • Nono_sad  · 技术社区  · 5 年前

    我有一个数据框,在一列中我想提取一个特定的信息。使用split可以很容易地完成,但是使用Pandas我不知道怎么做。

    s = pd.Series(['T:15.0(1.71%),B:7.4(0.03%),P:1e-21'])
    

    我试过了

    s.str.extract()
    

    但是我找不到符合我实际需要的正则表达式。

    或者如果有其他方法来解析列内容。

    3 回复  |  直到 5 年前
        1
  •  2
  •   NYC Coder    5 年前

    您可以尝试以下方法:

    print(s.str.extract('(\d+e-\d+)'))
    
           0
    0  1e-21
    
        2
  •  1
  •   bigbounty    5 年前
    s = pd.Series(['T:15.0(1.71%),B:7.4(0.03%),P:1e-21'])
    print(s.str.split(":")[0][-1])
    

    输出:

    '1e-21'
    
        3
  •  1
  •   Georgina Skibinski    5 年前

    尝试:

    print(s.str.extract(r"P:([^\,]+)"))
    

    这将返回您在literal之后拥有的任何内容: P: