【问题标题】:Dataframe Split Text into new column数据框将文本拆分为新列
【发布时间】:2020-04-03 06:18:48
【问题描述】:

我有一个带有以下列MENU_HINT 的数据框,我希望通过挑选第三个单词来创建一个新列:

MENU_HINT
AUS / Cant (AUS) 
AUS / Darw (AUS)
AUS / YarV (AUS)
AUS / Goul (AUS)

我的代码如下:

splittext = str(dfresults['MENU_HINT'])
dfresults['City'] = splittext.split()[3]

这给了我:

MENU_HINT                City
AUS / Cant (AUS)         Cant
AUS / Darw (AUS)         Cant
AUS / YarV (AUS)         Cant
AUS / Goul (AUS)         Cant

我在追随 Cant、Darw、YarV、Goul,但它正在确定最高价值 (Cant)。

我知道我很接近,但似乎无法解决问题,所以任何帮助都会很棒!

【问题讨论】:

    标签: python pandas dataframe split


    【解决方案1】:

    使用Series.str.split 进行切片:

    #fourth value
    dfresults['City'] = dfresults['MENU_HINT'].str.split().str[3]
    
    #third value
    dfresults['City'] = dfresults['MENU_HINT'].str.split().str[2]
    

    【讨论】:

      【解决方案2】:

      另一种解决方案是将pandas.Series.str.extract 与正则表达式一起使用:

      df['City'] = df['MENU_HINT'].str.extract(r'/\s(\w+)')
      print(df)
      
                 MENU_HINT  City
      0  AUS / Cant (AUS)   Cant
      1   AUS / Darw (AUS)  Darw
      2   AUS / YarV (AUS)  YarV
      3   AUS / Goul (AUS)  Goul
      

      这假定要匹配的文本后跟'/',并且可以在任何位置。

      【讨论】:

        猜你喜欢
        • 2022-06-15
        • 2020-12-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-12-22
        • 2022-01-09
        • 1970-01-01
        相关资源
        最近更新 更多