Создать матрицу последовательных элементов в списке в Python - PullRequest
0 голосов
/ 06 апреля 2019

У меня есть список игроков, и я пытаюсь найти матрицу попарного появления этих игроков.

players = [Player52, Player48,Player41,Player42,Player52,Player48]
matrix = 
          Player52  Player48  Player41  Player42
Player52      0         2        0          0
Player48      0         0        1          0
Player41      0         0        0          1
Player42      1         0        0          0

Я попытался составить список источника, целей и весов для формированияфрейм данных и использовать концепцию матрицы смежности для создания желаемой матрицы.

import json
import pandas as pd
import numpy as np
with open('interactions_clean.json') as f:
    data = json.load(f)

for i in data:
    player_list.append(i['dataItem']['Name'])

first = []
second =[]
for i in range(len(players) - 1):
    first.append(players[i])
    second.append(players[i+1])

weight = [1]*684

matrix_ad = pd.DataFrame({'source': first, "target": second, 'weight': weight})
vals = np.unique(matrix_ad[['source', 'target']])

Итак, чтобы создать желаемую матрицу, я попробовал пару вещей, таких как,

x= matrix_ad.pivot_table(index='source',columns='target',values='weight')

Это дает мне матрицу, но не может добавить вхождение повторяющихся пар.

1 Ответ

0 голосов
/ 06 апреля 2019

Удалить уникальную строку:

vals = np.unique(matrix_ad[['source', 'target']])

и должно быть хорошо. Вы не хотите удалять дубликаты там.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...