Как пометить дублирующиеся значения определенным образом - PullRequest
1 голос
/ 21 октября 2019

у меня ниже .csv. Я пытаюсь создать фрейм данных, в котором я могу найти дубликаты, и мне нужно найти еще один столбец, в котором первое значение будет всегда

Name = [('Hello'),
      ('Spider'),
      ('Captain'),
      ('Superman'),
       ('Hello'),
       ('Superman')]
dfName = pd.DataFrame(Name, columns=['Name'])
dfNamedup = dfName[dfName.duplicated()]
#dfName

dfName['un_dup_hel'] = np.where(dfName['Name'].duplicated(keep=False),'duplicate', 'unique')

My out

Name    un_dup_hel
0   Hello   duplicate
1   Spider  unique
2   Captain unique
3   Superman    duplicate
4   Hello   duplicate
5   Superman    duplicate

В первый раз мое значение будет уникальным, если оно повторяется затемтолько он покажет дубликаты

Ожидается. Вы можете видеть, что все когда Hello and Superman повторяется, тогда только мне нужно поставить как дубликаты

Name    un_dup_hel
0   Hello   unique
1   Spider  unique
2   Captain unique
3   Superman    unique
4   Hello   duplicate
5   Superman    duplicate

1 Ответ

3 голосов
/ 21 октября 2019

Удалить keep=False по умолчанию keep='first' параметр:

dfName['un_dup_hel'] = np.where(dfName['Name'].duplicated(),'duplicate', 'unique')

print (dfName)
       Name un_dup_hel
0     Hello     unique
1    Spider     unique
2   Captain     unique
3  Superman     unique
4     Hello  duplicate
5  Superman  duplicate

Деталь :

print (dfName['Name'].duplicated())
0    False
1    False
2    False
3    False
4     True
5     True
Name: Name, dtype: bool
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...