我有以下df a
,其中ListCol是包含列表的列。
+----+---------+
| Id | ListCol |
+----+---------+
| 1 | [a, b] |
| 2 | [a] |
| 3 | [a,b,c] |
+----+---------+
我如何对df a
的每一行进行操作,以便根据列ListCol
的列表内的值创建新列?
即,创建一个新的df b
,如下所示:(其中每个列表中的每个元素都附加了1)
+----+---------+
| Id | ListCol |
+----+---------+
| 1 | [a1, b1] |
| 2 | [a1] |
| 3 | [a1,b1,c1] |
+----+---------+
到目前为止,我已经编写了与withColumn一起使用的UDF:
def fun(array):
mylist = []
for el in array:
mylist.append(el + '1')
return mylist
my_udf = udf(fun, SomeType())
b = a.withColumn('ListCol', udf(a.ListCol))
但是我在for el in array:
遇到了以下错误
TypeError:列不可迭代
有什么想法吗?