Найти похожие строки и вычесть конкретное значение столбца в Pandas Dataframe - PullRequest
0 голосов
/ 08 марта 2020

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

Хотел найти строки с похожим столбцом "все, кроме одного".

Итак ,

     ColumnA     ColumnB     ColumnC    ColumnD  ColumnE  
1      John        Texas       USA        115       5
2      Mike        Florida     USA        66        1
3      John        Texas       USA        115       4
4      Justin      NewYork     USA        22        11

Итак, лог c, который я пытаюсь получить: там. Проблема и данные немного сложнее, поэтому я мог бы разместить здесь код.

Любая помощь с этим будет очень признательна.

Спасибо, Роб

1 Ответ

0 голосов
/ 08 марта 2020

Так что я точно не знаю, в каком формате вы хотите получить результат, поэтому я создал словарь, в котором ключ - это индекс данной строки, а значение - список индексов для строк, которые отличаются ровно на 1 запись. .

def ndif(a,b):
    d = 0
    for x,y in zip(a,b):
            if x!=y:
                    d+=1
    return(d)

d = pd.DataFrame([[1,2,3],[1,2,4],[3,2,4],[3,0,4],[5,0,3]])

just1 = {}

for k in d.index:
    just1[k] = [k[0] for k in d.apply(ndif,args=[d.iloc[k]],axis=1).items() if k[1]==1]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...