Как наиболее эффективно сравнить два столбца DataFrame и соответствовать аналогичным строкам на основе функции?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как наиболее эффективно сравнить два столбца DataFrame и соответствовать аналогичным строкам на основе функции?

Сообщение Anonymous »

Предполагая, что у нас есть два фрейма, каждый из которых содержал столбец несколько похожих значений на основе строк. Какой наиболее эффективный и/или эффективный способ сопоставить строки с аналогичными столбцами, основанный на функции сравнения-например, реализация TextDistance Jaro-Winkler?
Пример DataFrames:
first_df = pd.DataFrame( ['Cars and cats', 'Spaceship', 'Captain Marvel', 'Dune','Bucks in 6'], columns=['Title'])

second_df = pd.DataFrame( ['Captain Harlock', 'Cats and dogs', 'Buccuneers', 'Dune buggy','Milwaukee Bucks'], columns=['Title'])
< /code>
Что я думаю: < /p>

Создание картезианского продукта на основе каждого столбца DataFrame < /li>
Применить функцию сравнения и сохранить результат в новой колонке. Давайте назовем это сходство_SCORE < /li>
Сортировка нового рамы данных по наилучшему значению (в зависимости от алгоритма) < /li>
Отбросьте дубликаты столбца, в основном мы заинтересованы < /li>
< /ul>
Реализация: < /p>

< /ul>
: < /p>

< /ul>
: < /p>
< /ul>
.comparison_df = first_df.merge(second_df, how='cross')

comparison_df['similarity_score'] = comparison_df.apply(lambda row: textdistance.jaro_winkler.normalized_similarity(row['First DataFrame Titles'], row['Second DataFrame Titles']), axis=1)
display(comparison_df)

comparison_df = comparison_df.sort_values('similarity_score', ascending=False).drop_duplicates(subset=['First DataFrame Titles'], keep='first')
< /code>
Любые предложения приветствуются. Заранее спасибо.

Подробнее здесь: https://stackoverflow.com/questions/677 ... ch-the-sim
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»