Панды: удалять только определенные повторяющиеся значения столбцов в кадре данных панд - PullRequest
1 голос
/ 29 апреля 2019

Я пытаюсь удалить повторяющиеся значения адресов электронной почты, сохраняя только первое исходное значение, из столбца данных pandas. Однако не во всех случаях есть адреса электронной почты, поэтому они имеют значения «NaN». Мне нужно будет удалить дубликаты значений NaN на основе других критериев.

На данный момент я хочу сохранить все адреса электронной почты, равные NaN, а также одну уникальную копию дубликата адреса электронной почты.

Например, вот как выглядит датафрейм pandas:

    Email
    email@email.com
    NaN
    NaN
    email@email.com
    test@test.org

Я хочу удалить все дублирующиеся адреса электронной почты, сохранив значения NaN. Итак, ожидаемый результат примерно такой:

     Email
     email@email.com
     NaN
     NaN
     test@test.org

Дубликаты электронных писем удаляются, но NaN остаются. Любая помощь с благодарностью.

Ответы [ 2 ]

0 голосов
/ 29 апреля 2019

используйте drop_duplicates с keep = 'first', который сохранит 1 и отбросит другой дубликат

data.drop_duplicates(subset ="Email", 
                     keep = 'first', inplace = True) 
0 голосов
/ 29 апреля 2019

Использование duplicated + notnull:

m = ~(df.Email.duplicated() & df.Email.notnull())

df[m]

             Email
0  email@email.com
1              NaN
2              NaN
4    test@test.org
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...