【问题标题】:Pattern to split a column based on regex基于正则表达式拆分列的模式
【发布时间】:2020-02-07 16:02:39
【问题描述】:

我有一个数据框,其中每一行代表一个全名和一个网站。我需要将其拆分为 2 列:名称和网站。

我尝试使用 pandas str.split,但我正在努力创建一个正则表达式模式,该模式可以捕获任何初始的“http”以及网站的其余部分。我有以 http 和 https 开头的网站。

df = pd.DataFrame([['John Smith http://website.com'],['Alan Delon https://alandelon.com']])

我想要一个能够正确识别网站的模式来拆分我的数据。任何帮助将不胜感激。

【问题讨论】:

    标签: python regex pandas split


    【解决方案1】:

    使用str.split

     pd.DataFrame(df[0].str.split('\s(?=http)').tolist()).rename({0:'Name',1:'Website'}, axis=1)
    

    输出

             Name                Website
    0  John Smith  http://website.com   
    1  Alan Delon  https://alandelon.com
    

    【讨论】:

      【解决方案2】:

      使用str.extract

      例如:

      df = pd.DataFrame([['John Smith http://website.com'],['Alan Delon https://alandelon.com']], columns=["data"])
      df[["Name", "Url"]] = df["data"].str.extract(r"(.*?)(http.*)")
      print(df)
      

      输出:

                                     data         Name                    Url
      0     John Smith http://website.com  John Smith      http://website.com
      1  Alan Delon https://alandelon.com  Alan Delon   https://alandelon.com
      

      【讨论】:

        猜你喜欢
        • 2021-10-25
        • 2013-08-01
        • 2014-05-02
        • 1970-01-01
        • 2021-08-26
        • 2010-10-16
        • 1970-01-01
        相关资源
        最近更新 更多