我的数据框中有一个列,其中包含来自行的值的列表。
有没有办法让这些列表中的唯一值相同的列也进行排序。
这是我的数据框列。
ListProds
['YIZ12FF-A', 'YIZ12FF-A', 'YIIE2FF-A', 'YIR72FF-A', 'YIR72FF-A', 'YIR72FF-A']
['HYY32ZY-A', 'HYY32ZY-A']
['YI742FF-A', 'YI742FF-A', 'YI742FF-A', 'YI742FF-A']
['YI762FF-A', 'YI762FF-A', 'YI762FF-A', 'YI762FF-A', 'YI762FF-A', 'YI762FF-A', 'YI6E2FF-A', 'YI6E2FF-A', 'YI6E2FF-A']
['YI762FF-A', 'YI762FF-A', 'YI762FF-A', 'YI742FF-A', 'YI742FF-A', 'YI742FF-A', 'YI772FF-A', 'YI772FF-A', 'YI772FF-A']
['YIIE2FF-A']
['YIZ12FF-A', 'YIZ12FF-A', 'YIZ12FF-A', 'YIZ12FF-A', 'YIRE2FF-A', 'YIRE2FF-A', 'YIRE2FF-A', 'YIRE2FF-A', 'YIIK2FF-A', 'YIIK2FF-A', 'YIZ32FF-A', 'YZ3F2FF-A']
['YIY32FF-A']
['YNF82FF-A']
['YTFL2FF-A', 'YTFL2FF-A', 'YTHR2FF-A', 'YU0Y2FF-A']
['YI6A2FF-A', 'YI6A2FF-A', 'YI6A2FF-A']
['YI772FF-A']
['YTZR2FF-A']
['YIRF2FF-A', 'YIRF2FF-A', 'YIRF2FF-A', 'YIRF2FF-A']
['YI752FF-A', 'YI752FF-A', 'YI752FF-A']
我尝试了几种在Python中使用的方法,但均未成功。
从列表中将重复值删除到数据框中的pandas方法是什么?
最佳答案
将值转换为集合,然后对其进行排序:
df['ListProds'] = df['ListProds'].apply(lambda x: sorted(set(x)))
或像在评论中提到的@Chris A一样使用
np.unique
:df['ListProds'] = df['ListProds'].apply(lambda x: np.sort(np.unique(x)))
#if lists are sorted
#df['ListProds'] = df['ListProds'].apply(np.unique)
print (df)
ListProds
0 [YIIE2FF-A, YIR72FF-A, YIZ12FF-A]
1 [HYY32ZY-A]
2 [YI742FF-A]
3 [YI6E2FF-A, YI762FF-A]
4 [YI742FF-A, YI762FF-A, YI772FF-A]
5 [YIIE2FF-A]
6 [YIIK2FF-A, YIRE2FF-A, YIZ12FF-A, YIZ32FF-A, Y...
7 [YIY32FF-A]
8 [YNF82FF-A]
9 [YTFL2FF-A, YTHR2FF-A, YU0Y2FF-A]
10 [YI6A2FF-A]
11 [YI772FF-A]
12 [YTZR2FF-A]
13 [YIRF2FF-A]
14 [YI752FF-A]
关于python - 从Pandas数据框中的列表中删除重复的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58711722/