Я не знаю много о том, какая библиотека аккордов может быть лучшей, но могу я вам немного помочь:
Сначала мы определим наши данные в наборе данных pandas
import pandas as pd
data = [
[1, 0, 0, 0, 0, 1, 0, 0],
[1, 0, 0, 0, 0, 0, 0, 0],
[1, 0, 1, 1, 1, 1, 1, 1],
[1, 0, 0, 0, 0, 0, 0, 0],
[1, 0, 1, 1, 0, 1, 1, 1],
[0, 1, 0, 0, 1, 1, 1, 1],
[1, 1, 0, 0, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 0, 0, 1, 1, 0, 0],
[1, 1, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 1, 0, 0],
[1, 0, 0, 0, 0, 1, 0, 0],
[1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1],
[0, 1, 1, 1, 1, 1, 1, 0]]
dataframe = pd.DataFrame(data, columns = ['a','b','c','d','e','f','g','h'])
теперь мы реализуем алгоритм
def relationship (columnsList, dataframe):
result = 0
for index, row in dataframe.iterrows():
equal = True
for col in range(len(columnsList)-1):
if (equal and row[columnsList[col]] == row[columnsList[col+1]]):
equal = True
else:
equal = False
result += 1 if equal else 0
return result
Некоторые тесты
>>> relationship (['a','b','d'], dataframe) # a+b+d
3
>>> relationship (['a','b','h'], dataframe) # a+b+h
4
>>> relationship (['a','b'], dataframe) # a+b
7
Диаграмма на ваше усмотрение, надеюсь, вы найдете это полезным!