Панды: drop_duplicates не работает правильно - PullRequest
0 голосов
/ 17 мая 2018

Для следующих серий drop_duplicates работает неправильно:

8672.0
8672.0
8672.0
8672.0
8670.0
8670.0
8670.0
8670.0
8670.0
8670.0
8672.0
8672.0
8672.0
8672.0
8672.0
8672.0
8672.0
8672.0
8672.0
8672.0
8670.0
8670.0
8670.0
8670.0
8670.0

при использовании drop_duplicates(keep='first') должно возвращаться 4 значения:

8672.0
8670.0
8672.0
8670.0

, но на самом деле этовозвращает только первые 2 значения:

8672.0
8670.0

Что с ним не так или какие-либо предложения по использованию этого drop_duplicates для получения значений, которые я хочу?Большое вам спасибо.

Ответы [ 2 ]

0 голосов
/ 17 мая 2018

Я думаю, что нужны первые последовательные значения, поэтому решение сравнивается по shift ed значениям и фильтром по boolean indexing:

s1 = s[s.ne(s.shift())]
print (s1)
0     8672.0
4     8670.0
10    8672.0
20    8670.0
Name: col, dtype: float64
0 голосов
/ 17 мая 2018

DataFrame.drop_duplicates () удаляет все дубликаты, не только последовательные.

Предположим, s - это серия:

In [93]: s[s.diff().ne(0)]
Out[93]:
0     8672.0
3     8670.0
9     8672.0
19    8670.0
Name: 8672.0, dtype: float64
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...