сравнивая два кадра данных, получим повторения чисел - PullRequest
1 голос
/ 14 марта 2019

У меня есть фрейм данных с именами столбцов:

DF1:
+------------+
|   colsNames|
+------------+
|col1        |
|col2        |
|col3        |
+------------+

И фрейм данных с массивами значений:

DF2:
+------------+
|         set|
+------------+
|[11, 20]    |
|[1]         |
|[10, 17, 54]|
+------------+

И, наконец, еще один фрейм данных, как правило, с большими массивами, чем DF2с числами:

DF3:
+--------------------+
|             origin |
+--------------------+
|[11, 17, 1, 2, 3]   |
|[1, 17, 54, 66, 1]  |
|[11, 20, 10, 20]    |
+--------------------+

Каждая строка DF2 сравнивается со всеми значениями происхождения столбца в DF3 и создает столбцы с общими совпадениями между всеми элементами.Результат будет выглядеть следующим образом:

resultDF:
+--------------------+------------+------------+------------+
|             origin |        col1|        col2|        col3|
+--------------------+------------+------------+------------+
|[11, 17, 1, 2, 3]   |           1|           1|           1|
|[1, 17, 54, 66, 1]  |           0|           2|           2| 
|[11, 20, 10, 20]    |           3|           0|           1|
+--------------------+------------+------------+------------+

Пояснение к первой строке этого результатаDF (остальные одинаковые):

  • сравнить [11,20] с [11, 17, 1, 2, 3] с результатом 1 (только один раз появляется число 11)
  • сравнить [11,20] с [1, 17, 54, 66, 1] с результатом 0
  • сравнить [11,20] с [11, 20, 10, 20] с результатом 3 (два раза появляется число 20 и только один раз число 11).
  • По порядку строк мы добавляем столбец сЗначения DF1 с предыдущими результатами.DF1 и DF2 имеют одинаковые номера строк.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...