Series.unique () не показывает все уникальные элементы, но list (Series.unique ()) показывает? - PullRequest
0 голосов
/ 06 августа 2020

Я пытаюсь найти уникальные значения некоторой серии. Есть 10 уникальных значений, разбросанных среди 200 000 наблюдений, но когда я пытаюсь найти их с помощью Series.unique(), отображаются только 8 значений. Когда я использую list(Series.unique()), отображаются все 10 значений.

Что здесь произошло?

Большое спасибо.

1 Ответ

1 голос
/ 06 августа 2020

Что вы подразумеваете под «явиться»? pandas.Series.unique() возвращает объект ndarray. При выводе на консоль он отображается без запятых между элементами. При печати списка эти запятые включаются и могут иметь большую ширину по горизонтали, что визуально подразумевает больший набор.

Пример вывода терминала:

>>> print('ndarray:', s.unique())
ndarray: [2 3 6 5 4 9 0]
>>> print('list:   ', list(s.unique()))
list:    [2, 3, 6, 5, 4, 9, 0]

Если вы хотите проверить это они действительно разные, по нему можно позвонить set и сравнить:

if set(Series.unique()) == set(list(Series.unique())):
    print('They have the same elements.')
else:
    print('They have different elements.')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...