2017-10-10 6 views
1

すべて!データフレーム列の値のセット

私はデータフレームを持っています。 1つの列には、 'Product1、Product2、foo、bar'のような文字列が含まれています。

私はそれらを '、'で分割しましたが、今では製品名のリストを含む列があります。

どのようにして一意の製品名を取得できますか?

答えて

0

まず、リストのリストを平らその後、listsetと最後の変換を適用します。

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'] 

行ごとに一意の値たい場合:

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 
関連する問題