Вы можете использовать split
и выбрать первое значение списков путем индексации с помощью drop_duplicates
для удаления дубликатов:
changed_data=df['Category'].drop_duplicates().str.split().str[0]
Также возможно разделениетолько по первым пробелам:
changed_data=df['Category'].drop_duplicates().str.split(n=1).str[0]
Если важна производительность и нет значений NaN
s:
changed_data= pd.Series([x.split()[0] for x in df['Category'].drop_duplicates(),
index=df.index)
Образец :
df = pd.DataFrame({'Category':['some way','nice', 'yop yop m',
'be happy', 'nice', 'yop man']})
print (df)
Category
0 some way
1 nice
2 yop yop m
3 be happy
4 nice
5 yop man
Сначала удалите дубликаты, а затем получите первое слово:
changed_data=df['Category'].drop_duplicates().str.split().str[0]
print (changed_data)
0 some
1 nice
2 yop
3 be
5 yop
Name: Category, dtype: object
Или сначала получите первое слово, а затем удалите дубликаты:
changed_data=df['Category'].str.split().str[0].drop_duplicates()
print (changed_data)
0 some
1 nice
2 yop
3 be
Name: Category, dtype: object