Удалите все строки, содержащие идентификаторы в столбце 1, которые имеют хотя бы одно значение c в другом c столбце2 в кадре данных Python - PullRequest
1 голос
/ 06 августа 2020

Как говорится в заголовке, я хочу удалить все строки, содержащие идентификаторы в столбце 1, которые имеют хотя бы одно значение c в другом c столбце2. В моем случае «определенные c значения» - это нули

   column1 column2 column3
    1   1   a
    1   2   b
    1   3   c
    1   0   d
    2   2   e
    2   3   f
    3   0   g
    3   2   h
    3   0   i
    3   3   j
    4   8   k

И результат, который я хочу, будет

column1 column2 column3
2   2   e
2   3   f
4   8   k

Есть ли в Python быстрая команда для этого?

Заранее очень благодарен

1 Ответ

1 голос
/ 06 августа 2020
# get rows whcih contain the tigger (here the zeros in column 2)
df_blacklist = df[df["column2"]==0]
# since you want to remove all IDs in column 1 which have at least 1 zero in column 2
# we get a list of "infected" IDs
lst_blacklisted_ids = list(df_blacklist["column1"].unique())
# now we filter for the IDs which are not infected, be aware that "~" inverts the boolean values in the mask
df = df[~df["column1"].isin(lst_blacklisted_ids)]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...