示例数据帧:
镜头 | INV。否 | INV。否 | INV。否 |
---|---|---|---|
第一个 | 1 | 3 | 4|
第二 | 2 | 5 | 3 |
第一个 | 3 | 72 | |
第二次 | 4 | 8 | <1>
我在您的列名中看不到"prod"。您可以使用简单的列表理解来获得列表中的"普通"列,并将reduce
与add
:一起使用
from functools import reduce
from operator import add
col_list = [c for c in df.columns if 'plain-' in c]
df = df.withColumn("plain_sum" ,reduce(add, [col(x) for x in col_list]))
df.show(truncate=False)
+------+-------------+-------------+-------------+---------+
|lens |plain-dev 103|plain-pre 104|plain-rte 107|plain_sum|
+------+-------------+-------------+-------------+---------+
|First |1 |3 |4 |8 |
|Second|2 |5 |3 |10 |
|First |3 |7 |2 |12 |
|Second|4 |8 |1 |13 |
+------+-------------+-------------+-------------+---------+