dataframe - 将单引号添加到 dataFrame 列值
问题描述
DataFrame
持有一列QUALIFY
,其值如下。
QUALIFY
=================
ColA|ColB|ColC
ColA
ColZ|ColP
此列中的值由 分割"|"
。我希望此列中的值类似于'ColA','ColB','ColC' ...
使用下面的代码,我可以替换|
为,',
. 如何在值的开头和结尾添加单引号?
newDf = df_qualify.withColumn('QUALIFY2', regexp_replace('QUALIFY', "\\|", "\\','"))
解决方案
拆分列|
,然后将结果数组连接回字符串:
import pyspark.sql.functions as F
import pyspark.sql.types as T
def str_list(x):
return str(x).replace("[", "").replace("]", "")
str_udf = F.udf(str_list, T.StringType())
df = df.withColumn("arr_split", F.split(F.col("QUALIFY"), "\|")) # escape character
df = df.withColumn("QUALIFY2", str_udf(F.col("arr_split")))
我的示例输出框架:
df.drop("arr_split").show() # Please ignore a and b columns
+---+---+--------------+--------------------+
| a| b| abc| QUALIFY2|
+---+---+--------------+--------------------+
| 1| 1|col1|col2|col3|'col1', 'col2', '...|
| 2| 2|col1|col2|col3|'col1', 'col2', '...|
| 3| 3|col1|col2|col3|'col1', 'col2', '...|
| 4| 4|col1|col2|col3|'col1', 'col2', '...|
| 5| 5|col1|col2|col3|'col1', 'col2', '...|
+---+---+--------------+--------------------+
推荐阅读
- html - 在文本之上显示文本
- excel - 如何将工作簿 - 工作表和范围作为变量引用
- r - 在 Expss for 循环中未解析的标签
- flutter - Flutter:没有小数点的键盘
- python - 无法在 python 中为 segmentation_models 库选择框架
- python - 删除 Pandas 数据框行,其中所有列的总和等于 0
- sql - 如何在 Postgres 中获取保存请求中的初始订单的行?
- java - 在Java中的对象初始化期间根据构造函数变量值更改键?
- codeigniter - 将图像上传到两个不同的路径
- python - 在迭代到 .append() 元素期间创建新的列表名称