使用Python将字符串列合并到一组列表中

ahb*_*bon 3 python numpy pandas

我有一个像这样的Pandas DataFrame:

id     fruits
01     Apple, Apricot
02     Apple, Banana, Clementine, Pear
03     Orange, Pineapple, Pear
Run Code Online (Sandbox Code Playgroud)

如何通过删除重复项来获得这样的水果列表?

['Apple','Apricot','Banana','Clementine','Orange','Pear','Pineapple']
Run Code Online (Sandbox Code Playgroud)

jez*_*ael 5

你可以压平list创建的split,转换为sets表示唯一,最后转换为lists:

a = list(set([item for sublist in df['fruits'].str.split(', ') for item in sublist]))
print (a)
['Pineapple', 'Clementine', 'Apple', 'Banana', 'Apricot', 'Orange', 'Pear']
Run Code Online (Sandbox Code Playgroud)

要么:

a = df['fruits'].str.split(', ', expand=True).stack().drop_duplicates().tolist()
print (a)
['Apple', 'Apricot', 'Banana', 'Clementine', 'Pear', 'Orange', 'Pineapple']
Run Code Online (Sandbox Code Playgroud)

谢谢@kabanus的替代方案:

a = list(set(sum(df['fruits'].str.split(', '),[])))
Run Code Online (Sandbox Code Playgroud)