Во-первых, у меня есть файл Excel (или CSV-файл), который я преобразовал в кадр данных (df
).
Далее, в первом столбце есть один основной список строк, который содержитбуквенно-цифровые символы.
Далее в последующих столбцах есть списки строк, которые могут быть одинаковой длины (list1
), короче (list2
) или длиннее (list3
).
Я бы хотел count
(или sum
) количество точных совпадений между master_list
и другими списками.
# Assign spreadsheet filename to `file`
file = "list_match.xlsx"
# Load spreadsheet
import pandas as pd
df = pd.read_excel(file)
print (df)
master_list list1 list2 list3
abc abc abc stu
def xxx def zzz
ghi xxx yyy zzz
jkl xxx yyy zzz
mno1 xxx yz1 zzz
pqr xxx zzz
stu xxx zzz
vwx xxx zzz
yz1 xxx zzz
yz2 xx1 zzz
yz3 xx1 zzz
zzz
mno1
zzz
Цель состоит в том, чтобы создатьэтот результат:
List Count
list1 1
list2 3
list3 2
Объяснение результата:
- В списке 1 есть одно совпадение: 'abc'
- В списке 2 есть три совпадения: 'abc',' def ',' yz1 '
- В списке 3 есть два совпадения:' stu ',' mno1 '
Мой вопрос похож на thisвопрос , за исключением того, что данные транспонированы и есть несколько списков для сравнения, для которых может потребоваться цикл.