Предполагая, что у нас есть два фрейма, каждый из которых содержал столбец несколько похожих значений на основе строк. Какой наиболее эффективный и/или эффективный способ сопоставить строки с аналогичными столбцами, основанный на функции сравнения-например, реализация 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
Как наиболее эффективно сравнить два столбца DataFrame и соответствовать аналогичным строкам на основе функции? ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как по-настоящему сравнить два кадра данных на основе ключевого столбца?
Anonymous » » в форуме Python - 0 Ответы
- 13 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как по-настоящему сравнить два кадра данных на основе ключевого столбца?
Anonymous » » в форуме Python - 0 Ответы
- 9 Просмотры
-
Последнее сообщение Anonymous
-