создать матрицу смежности из файла с помощью Python и сохранить выходной файл в формате .mat - PullRequest
0 голосов
/ 08 апреля 2019

У меня есть примерный набор данных, похожий на этот: Тойота Камри Тойота Авалон Хонда Сивик Хонда Аккорд Фольксваген Пассат Фольксваген Джетта

В этом наборе данных мне нужно подсчитать, сколько уникальных значений в первом столбце и во втором столбце.Затем для каждого уникального значения, сколько значений связано со значениями столбца два.Пример - Тойота связана с Кэмби и Авалоном.Мне нужно создать смежную матрицу m * n, где m = номер уникального значения в первом столбце и n = номер уникального значения во втором столбце.Мой окончательный результат выглядит следующим образом:

    Camry   Avalon  Civic   Accord  Passat  Jetta

Toyota 1 1 0 0 0 0 Honda 0 0 1 1 0 0 Volkswagen 0 0 0 0 1 1

Мне нужна помощь, какрешить это с помощью Python.

1 Ответ

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

Я бы не назвал то, что вы хотите, матрицу смежности .Тем не менее, желаемую структуру можно сделать довольно легко (см. Комментарии в коде):

import pandas
import StringIO
dataset = '''Toyota Camry
Toyota Avalon
Honda Civic
Honda Accord
Volkswagen Passat
Volkswagen Jetta'''
# read the dataset into DataFrame d
d = pandas.read_csv(StringIO.StringIO(dataset), ' ', header=None, names=(0, 1))
# make output DataFrame x with rows from first and columns from second input column
x = pandas.DataFrame(0, index=d[0].unique(), columns=d[1].unique())
# set the existing combinations to 1
for e in d.itertuples(index=False, name=None):
    x.at[e] = 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...