Remove duplicates in a cell of a dataframe in pandas

Question:

I have a data frame that has a lot of data for each cell. I want to remove the duplicates of each cell.

example:

([nan,"Inversión en Café 19 completada / Inversión en Café 19 / interacción_con la plataforma / interacción_con la plataforma / interacción_con la plataforma / interacción_con la plataforma / interacción_con la plataforma / interacción_con la plataforma / interacción_con la plataforma / interacción_con la plataforma / interacción_con la plataforma / interacción_con la plataforma / interacción_con la plataforma / interacción_con la plataforma / interacción_con la plataforma / interacción_con la plataforma / interacción_con la plataforma / interacción_con la plataforma / interacción_con la plataforma / interacción_con la plataforma / interacción_con la plataforma / login-device-verification-form / login-device-verification-form / interacción_con la plataforma / interacción_con la plataforma / Players para Buyer Persona / interacción_con la plataforma / interacción_con la plataforma / interacción_con la plataforma / login-device-verification-form / login-device-verification-form / interacción_con la plataforma / interacción_con la plataforma / interacción_con la plataforma / interacción_con la plataforma / login-device-verification-form / login-device-verification-form / interacción_con la plataforma / interacción_con la plataforma / interacción_con la plataforma / interacción_con la plataforma / login-device-verification-form / login-device-verification-form / interacción_con la plataforma / interacción_con la plataforma / Players Junghanns - Planta Puebla / FOINBRA 2 - Players 13-07-2021 / interacción_con la plataforma / interacción_con la plataforma / interacción_con la plataforma / interacción_con la plataforma / SG - Players 24-06-21 / Players Sports Garden 10 junio (pending y pagados) / Players Sports Garden 10 junio (pending y pagados) / interacción_con la plataforma / Clusters Foinbra R2 - C2 / interacción_con la plataforma / interacción_con la plataforma / interacción_con la plataforma / interacción_con la plataforma / interacción_con la plataforma / interacción_con la plataforma / interacción_con la plataforma / interacción_con la plataforma / interacción_con la plataforma / Clusteres Before SG 2021.2 - C2--C3--C4 / interacción_con la plataforma / Junghanns R2 - Players 18-03-2021 / Junghanns - Clusters - C2 - 1 / Junghanns R2 - Likes / Junghanns R1 - Players 03-03-2021 - 1 / Prueba MONEX - Players franquicias / Junghanns - Clusters - C2 / Junghanns R1 - Players 03-03-2021 / interacción_con la plataforma / interacción_con la plataforma / ACIUM - Players 24-02-2021 / interacción_con la plataforma / Players RegalÃxadas primer trimestre 2021 (con otras inversiones) / interacción_con la plataforma / ACIUM - Inversionistas 9-02-2021 / ACIUM - Inversionistas 9-02-2021 / interacción_con la plataforma / interacción_con la plataforma / interacción_con la plataforma / interacción_con la plataforma / interacción_con la plataforma / interacción_con la plataforma / interacción_con la plataforma / interacción_con la plataforma / interacción_con la plataforma / McCarthy's R2 Players 26/ene/21 / interacción_con la plataforma / interacción_con la plataforma / interacción_con la plataforma / interacción_con la plataforma / interacción_con la plataforma / interacción_con la plataforma / ACIUM - Players Promo Wallet / interacción_con la plataforma",
       'Inversión en Café 19 completada / Inversión en Café 19 / ingreso-a-webinar-cafe19 / interacción_con la plataforma / Players Doopla - 18_10_2021 / La Vicenta - Likes / Players para Buyer Persona / interacción_con la plataforma / SIN wallet | Players Diri | 20 agosto / Players Diri | Players SIN wallet / interacción_con la plataforma / interacción_con la plataforma / interacción_con la plataforma / interacción_con la plataforma / interacción_con la plataforma / interacción_con la plataforma / Diri Compromisos 3 agosto 2021 / Players Compromiso de inversión Diri (28/jul/21) / Players Galt 27/jul/21 / Players Junghanns - Planta Puebla / SG - Players 24-06-21 / Diri - Likes / Players Sports Garden 10 junio (pending y pagados) / Players Sports Garden 10 junio (pending y pagados) / Clusters Foinbra R2 - C2 / interacción_con la plataforma / Clusteres Before SG 2021.2 - C2--C3--C4 / Junghanns - Clusters - C2 - 1 / Junghanns R1 - Players 03-03-2021 - 1 / Prueba MONEX - Players franquicias / Junghanns - Clusters - C2 / Junghanns R1 - Players 03-03-2021 / Players RegalÃxadas primer trimestre 2021 (con otras inversiones) / ACIUM - Inversionistas 9-02-2021 / ACIUM - Inversionistas 9-02-2021 / Doopla Players 9/2/21 / interacción_con la plataforma / Galt Players 20/ene/21 / interacción_con la plataforma / ACIUM - Players Promo Wallet / CTLBdC - Segundo periodo de Pago / CTLBdC - Players primer cobro / interacción_con la plataforma / interacción_con la plataforma / interacción_con la plataforma / FOINBRA - Cluster 2 / interacción_con la plataforma / interacción_con la plataforma / interacción_con la plataforma / CTLBdC - FOMO / Junghanns - Internal Recovery / interacción_con la plataforma / CTLBdC - Cluster 1.1 / CTLBdC - Likes / PB - Players regalÃxadas/RBF / interacción_con la plataforma / interacción_con la plataforma / Junghanns - Cluster 2.2 / Doopla - Visitantes al Snapshot / Doopla - Base 5 / Doopla - Base 3 / interacción_con la plataforma / interacción_con la plataforma / Cinnabon R2 23/07/2020 / interacción_con la plataforma / interacción_con la plataforma / interacción_con la plataforma / Inversionistas Cinnabon 2 - Antes del 31 de Mayo / Cinnabon 2 - Promo external offering / Cinnabon 2 - FOMO 1 / Players Galt 05/05/2020 / PB - Players 29-04-2020 / Players Interactuando Ultimos 4 meses / La Borra Del Cafe Players 03.25.20 / Galt Energy - Inversionistas 24-03-2020 / interacción_con la plataforma / interacción_con la plataforma / interacción_con la plataforma / interacción_con la plataforma / interacción_con la plataforma / interacción_con la plataforma / interacción_con la plataforma / interacción_con la plataforma / interacción_con la plataforma / LBdC - Inversionistas 24_02_2020 / PB - Inversionistas 20_02_2020 (sin Galt) / interacción_con la plataforma / interacción_con la plataforma / interacción_con la plataforma / interacción_con la plataforma / Inversionistas - 06_02_2020 / interacción_con la plataforma / interacción_con la plataforma / Galt - Likes 30_01_2020 / interacción_con la plataforma / interacción_con la plataforma / interacción_con la plataforma / LBdC - Inversionistas 27_01_2020 / interacción_con la plataforma / interacción_con la plataforma',
  • interacción_con la plataforma is several times in the string and I just want to have 1.
df_invertido['Eventos ultimos 100'] = df_invertido['Eventos ultimos 100'].str.split(r',s+').map(set).str.join(", ")

I’ve tried this code.

Answers:

Using more or less the same strategy you were trying: split, then set and join again, I would try:

def clean_text(text):
    strings = text.split("/")
    strings = [item.strip() for item in strings]
    text = "/".join(set(strings))
    return text

df_invertido['Eventos ultimos 100'] = df_invertido['Eventos ultimos 100'].apply(clean_text)

The second line in the clean_text function accounts for items like / interacción_con la plataforma / and / interacción_con la plataforma/ that differ in trailing whitespaces.

Note that set does not necessarily conserve the order.

Answered By: Ignatius Reilly
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.