Панды: Удалить строки, где значение одной колонки появляется на любой строке другой - PullRequest
0 голосов
/ 07 сентября 2018

Пример данных:

000000008,2, 1,000000010
000000009,1, 1,000000011
000000010,1, 1,000000008
000000011,2, 1,000000032
000000012,3, 1,000000009
000000013,2, 1,000000108

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

Следовательно, в этом примере должны быть удалены следующие строки:

000000008,2, 1,000000010
000000010,1, 1,000000008
000000012,3, 1,000000009
000000009,1, 1,000000011

Начальная точка кода:

import numpy as np
import pandas as pd

T = u'''000000008,2, 1,000000010
    000000009,1, 1,000000011
    000000010,1, 1,000000008
    000000011,2, 1,000000032
    000000012,3, 1,000000009
    000000013,2, 1,000000108'''

from io import StringIO
df = pd.read_csv(StringIO(T), header=None)
print(df)

1 Ответ

0 голосов
/ 07 сентября 2018

IIUC, из вашего описания вы можете сделать:

df[~df.iloc[:,3].isin(df.iloc[:,0])]

Что возвращает:

    0  1  2    3
3  11  2  1   32
5  13  2  1  108

В отличие от желаемого результата, эта строка удаляется с помощью 000000011, ноне тот, с 000000108, потому что 000000011 находится в обоих столбцах, но 000000108 не

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...