2017-10-10 2 views
1

tous!Jeu de valeurs dans les colonnes de données

J'ai une base de données. Une colonne contient des chaînes comme celle-ci: 'Product1, Product2, foo, bar'. Je les ai séparés par «,» et maintenant j'ai une colonne contenant des listes de noms de produits.

Comment puis-je obtenir un ensemble de noms de produits uniques?

Répondre

0

Première aplatissent liste des listes, puis appliquer set et dernier converti à list:

df = pd.DataFrame(data = {'a':['Product1,Product1,foo,bar','Product1,foo,foo,bar']}) 

print (df) 
          a 
0 Product1,Product1,foo,bar 
1  Product1,foo,foo,bar 

a=list(set([item for sublist in df['a'].str.split(',').values.tolist() for item in sublist])) 
print (a) 
['bar', 'foo', 'Product1'] 

Si des valeurs uniques par veulent lignes:

df = df['a'].str.split(',').apply(lambda x: list(set(x))) 
print (df) 

0 [bar, foo, Product1] 
1 [bar, foo, Product1] 
Name: a, dtype: object