Reputation: 137
I have a column in my dataframe that is a list with values from rows. Is there any way to get the same columns with unique values in these lists sorted also.
This is my dataframe column.
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']
I tried a few methods used in Python without success.
What is the pandas method for removing duplicated values from list into a dataframe?
Upvotes: 2
Views: 94
Reputation: 862691
Convert values to sets and then sort them:
df['ListProds'] = df['ListProds'].apply(lambda x: sorted(set(x)))
Or like mentioned @Chris A in comments use 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]
Upvotes: 3