EDIT:
При необходимости извлеките все возможные значения, используйте split
:
df['new'] = df['Breeds'].str.split(', ')
Для уникальных значений конвертировать в set
s:
df['new'] = df['Breeds'].str.split(', ').apply(lambda x: list(set(x)))
Или используйте понимание списка:
df['new'] = [list(set(x.split(', '))) for x in df['Breeds']]
Используйте findall
для извлечения list
и regex
- |
для OR
, если хотите извлечь только некоторые значения:
L = ["Collie", "Shepherd", "Retriever", "Bulldog"]
df['new'] = df['Breeds'].str.findall('|'.join(L))
Если возможно, дубликаты:
df['new'] = df['Breeds'].str.findall('|'.join(L)).apply(lambda x: list(set(x)))
print (df)
Year Breeds new
0 2009 Collie [Collie]
1 2010 Shepherd [Shepherd]
2 2011 Collie, Shepherd [Collie, Shepherd]
3 2012 Shepherd, Retriever [Shepherd, Retriever]
4 2013 Shepherd [Shepherd]
5 2014 Shepherd, Bulldog [Shepherd, Bulldog]
6 2015 Collie, Retriever [Collie, Retriever]
7 2016 Retriever, Bulldog [Retriever, Bulldog]