【问题标题】:PySpark: Remove leading numbers and full stop from dataframe columnPySpark:从数据框列中删除前导数字和句号
【发布时间】:2022-01-23 06:29:18
【问题描述】:

我正在尝试删除在投注数据框中引导马匹名称的数字和句号。

格式是这样的:

  1. 马名
  2. 马名

我希望生成的 df 列只有马的名字。

我尝试在句号处拆分列,但没有得到所需的结果。

import pyspark.sql.functions as F

runners_returns = runners_returns.withColumn('runner_name', F.split(F.col('runner_name'), '.'))

非常感谢任何帮助

【问题讨论】:

    标签: pyspark


    【解决方案1】:

    使用如下数据框。

    df.show()
    +---+-----------+
    | ID|runner_name|
    +---+-----------+
    |  1|   123.John|
    |  2|   5.42Anna|
    |  3|   .203Josh|
    |  4|    102Paul|
    +---+-----------+
    

    您可以像这样删除前导数字和句点。

    import pyspark.sql.functions as F
    
    df = (df.withColumn("runner_name", 
             F.regexp_replace('runner_name', r'(^[\d\.]+)', '')))
    
    df.show()
    +---+-----------+
    | ID|runner_name|
    +---+-----------+
    |  1|       John|
    |  2|       Anna|
    |  3|       Josh|
    |  4|       Paul|
    +---+-----------+
    
    

    【讨论】:

    • 太好了,谢谢一百万!我真的需要掌握正则表达式的窍门。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-26
    • 1970-01-01
    • 1970-01-01
    • 2020-05-14
    相关资源
    最近更新 更多