从列中的列表中删除重复项

Remove duplicates from lists in columns

我在数据框中有两列,Col_A 和 Col_B,df。

Col_A                   Col_B
[1.222, 1.222, 1.333]   [cla:pl:dr, cla:pl:dr]
[]                      [clp:dp, xr.ld, xr.ld]
[1.29.1, 1.1, 1.1]      [ru:pun, ru:pun, hm:dm]

我想删除 ea 中的重复值。 ea列表。 Col_A 和 Col_B 的行,如下所示。

type(df['Col_A'][0]) returns list

我尝试过的示例 return 无法散列的类型错误。我试图避免此错误但无济于事的方法包括:

df['Col_A'].map(lambda x: tuple(set(x)))

我该如何解决这个问题?

编辑:复制粘贴的数据。

看起来您正在使用字符串作为数据。

 data = {'col_A': [['1.222', '1.222', '1.333'], [], ['1.29.1', '1.1', '1.1']] ,
         'col_B': [['cla:pl:dr', 'cla:pl:dr'], ['clp:dp', 'xr.ld', 'xr.ld'], ['ru:pun', 'ru:pun', 'hm:dm']] }

 df = pd.DataFrame(data)
 df['col_A'] = df['col_A'].apply(lambda x: list(set(x)))
 df['col_B'] = df['col_B'].apply(lambda x: list(set(x)))

输出 DF

       col_A                 col_B
0   [1.222, 1.222, 1.333]   [cla:pl:dr, cla:pl:dr]
1   []                      [clp:dp, xr.ld, xr.ld]
2   [1.29.1, 1.1, 1.1]      [ru:pun, ru:pun, hm:dm]

OutPut DF(去除重复后)

    col_A           col_B
0   [1.222, 1.333]  [cla:pl:dr]
1   []              [clp:dp, xr.ld]
2   [1.29.1, 1.1]   [ru:pun, hm:dm]