我在dataframe中有一个列,它的字符串值如下
"Hardware part not present"
"Software part not present"
null
null
我想拆分WRT“”,只取前2个字符串到新列,如果它是空的,那么即使新列值也应该是空的。如何做到这一点呢?
需要的结果
column New column
Hardware part not present Hardware part
Software part not present Software part
null null
null null
如何使用pyspark或python来实现这一点
3条答案
按热度按时间62lalag41#
您可以使用
substring_index
函数。deikduxw2#
Pandas有一种内置的分裂方法。在这里,您可以定义拆分的总数,以限制拆分进入字符串的深度。
这将为您提供3列。然后只需连接前2个,然后删除任何不必要的COLS。
参考文档:https://pandas.pydata.org/docs/reference/api/pandas.Series.str.split.html
它默认在空格上拆分,但如果您认为其中会有逗号或其他东西,则始终可以在正则表达式模式上拆分。
5n0oy7gb3#
在pyspark中,您可以使用
concat_ws
、slice
和split
函数来实现这一点。split
将根据提供的分隔符(在本例中为" "
)拆分文本slice
将保留从第k个位置开始的N个元素(在本例中为N=2
和K=1
)concat_ws
连接由提供的分隔符(在本例中为" "
)分隔的数组元素when()
仅使用对非空值的操作,因为这会为空值生成空格/空白值