как найти повторяющиеся слова в массиве
Если в массиве имена животных повторяются то нужно напротив этого имени написать что оно не уникальное, а если не повторяются та уникальное
вот мой код:
import pandas as pd
import numpy as np
d = {"Name": pd.Series(['Myrchik','Barsik','Bobik','Vasya','Vasya','Vasya','Barsik']),
"test_unique": pd.Series([],dtype='object')}
df1 = pd.DataFrame(d)
print(df1.index)
print(df1.columns)
print(df1)
print(df1.test_unique)
#index = pd.MultiIndex.from_product(test_unique,names=["first", "second"])
def test_func(df1):
for i in df1.test_unique:
df1.test_unique.count(i)
if df1.test_unique.count(i) > 1:
return 'not_unique'
else:
return 'unique'
test_unique = df1.apply(test_func, axis=1)
df1.test_unique = test_unique
test_unique.name = 'test_unique'
print(df1)
но похоже что таким способом я не могу проверить данные типа object.
ошибка в функции test_func
Ответы (1 шт):
Автор решения: MaxU - stop genocide of UA
→ Ссылка
Воспользуйтесь DataFrame.duplicated():
df1["test_unique"] = \
np.where(df1["Name"].duplicated(keep=False), "not_unique", "unique")
результат:
In [152]: df1
Out[152]:
Name test_unique
0 Myrchik unique
1 Barsik not_unique
2 Bobik unique
3 Vasya not_unique
4 Vasya not_unique
5 Vasya not_unique
6 Barsik not_unique