удаление дедупликации из фрейма данных панда матрицы сходства косинусов - PullRequest
0 голосов
/ 12 декабря 2018

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

          0         1         2         3         4
0  1.000000  0.515303  0.741283  0.035133  0.076743
1  0.920776  1.000000  0.153878  0.024261  0.845839
2  0.273931  0.842390  1.000000  0.502877  0.962273
3  0.407020  0.409827  0.096752  1.000000  0.886368
4  0.315340  0.618172  0.335455  0.170406  1.000000

кто-то, пожалуйста, помогите мне удалить дублирующиеся строки, используя отсечение, например, если индекс 0 равен, а 2 имеетСходство 74%. Я хочу оставить только 0 (который является первым)

. На данный момент я создал еще один фрейм данных, используя данные [data <= 0.6], чтобы ограничить сходство до 60%, и вывод данныхкадр, где значения больше 0,6, включая диагонали. </p>

          0         1         2         3         4
0       NaN  0.515303       NaN  0.035133  0.076743
1       NaN       NaN  0.153878  0.024261       NaN
2  0.273931       NaN       NaN  0.502877       NaN
3  0.407020  0.409827  0.096752       NaN       NaN
4  0.315340       NaN  0.335455  0.170406       NaN

ожидаемый результат - это кадр данных, который не имеет значения NaN в столбце

          0         1         2         3         4
0       NaN  0.515303       NaN  0.035133  0.076743
3  0.407020  0.409827  0.096752       NaN       NaN

1 Ответ

0 голосов
/ 12 декабря 2018

Понял, спасибо всем за быстрый ответ

l = []
for _, row in data[data <= 0.6].iterrows():
    for value in data.columns[row.isnull()].tolist():
        if value not in l:
            l.append(value)
data.drop(index = l)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...