У меня есть такой кадр данных:
+-------+----------------+
|Name |Source |
+-------+----------------+
|Tom |clientA-incoming|
|Dick |clientB-incoming|
|Harry |c-abc-incoming |
и я хотел бы добавить столбец slug
, чтобы получить этот фрейм данных:
+-------+----------------+--------+
|Name |Source |slug |
+-------+----------------+--------+
|Tom |clientA-incoming|clientA |
|Dick |clientB-incoming|clientB |
|Harry |c-abc-incoming |c-abc |
и у меня есть список значений, в которых есть слаги:
slugs = ['clientA', 'clientB', 'c-abc']
в основном я думаю что-то вроде этого псевдокода:
for i in slugs:
if i in df['Source']:
df['Slug'] = i
может кто-нибудь помочь мне пересечь финишную черту?
РЕДАКТИРОВАТЬ:
Я хочу обновить столбец slug
значением из списка slugs
. Конкретное значение, которое входит в столбец slug
, определяется на основе столбца Source
.
Например, поскольку slugs[0] = 'clientA'
и clientA являются подстрокой clientA-incoming
, я хотел бы обновить значение этой строки в столбце slug
до clientA.
slugs
, и они будут разной длины? - person roganjosh   schedule 20.02.2020slug
на основе столбцаSource
? или изslugs
списка..? - person Shu   schedule 20.02.2020slugs
, но будут значения вslugs
, у которых нет строки - person DBA108642   schedule 20.02.2020slug
данными из спискаslugs
на основе значений изSource
- person DBA108642   schedule 20.02.2020coalesce
,contains
(илиstartswith
) иwhen
для выполнения if-then -else логика: Что-то вроде:df.withColumn('slug', coalesce(*[when(col('Source').contains(slug), lit(slug)) for slug in slugs]))
- person pault   schedule 21.02.2020