Создать матрицу из простого pandas dataframe - PullRequest
1 голос
/ 12 июля 2019

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

У меня есть несколько комбинаций в виде строк, и я хотел бы скопировать их в столбцы по порядкучтобы иметь представление о силе взаимосвязей на визуальном уровне (возможно, аккордовая диаграмма).

Это пример используемого фрейма данных:

variables         count
a                  13
b                   9
c                   8
d                   6
e                  10
f                  12
g                   9
h                   7
a_b                 7
a_b_h               8

И эторезультат, который я хотел бы получить, учитывая, что у меня есть несколько комбинаций, а не только парная.

         a  b  c  d  e  f  g  h  a_b a_b_h
a       13  7  0  0  0  0  0  0  0    0
b        7  9  0  0  0  0  0  0  0    0
c        0  0  8  0  0  0  0  0  0    0
d        0  0  0  6  0  0  0  0  0    0
e        0  0  0  0 10  0  0  0  0    0
f        0  0  0  0  0 12  0  0  0    0
g        0  0  0  0  0  0  9  0  0    0
h        0  0  0  0  0  0  0  7  0    0
a_b      0  0  0  0  0  0  0  0  7    0
a_b_h    0  0  0  0  0  0  0  0  0    8

И так далее, со всеми комбинациями.

Цель состоит в том, чтобызатем создайте диаграмму аккордов, подобную приведенной ниже, которая показывает силу взаимосвязей между переменными

1 Ответ

1 голос
/ 12 июля 2019

Использование np.diag:

df = pd.DataFrame({"variables": ["a", "b", "c", "d", "e", "f", "g", "h", "a_b", "a_b_h"],
                   "count": [13, 9, 8, 6, 10, 12, 9, 7, 7, 8]})

df2 = pd.DataFrame(np.diag(df["count"]), columns=df["variables"], index=df["variables"])

Выход:

variables   a  b  c  d   e   f  g  h  a_b  a_b_h
variables                                       
a          13  0  0  0   0   0  0  0    0      0
b           0  9  0  0   0   0  0  0    0      0
c           0  0  8  0   0   0  0  0    0      0
d           0  0  0  6   0   0  0  0    0      0
e           0  0  0  0  10   0  0  0    0      0
f           0  0  0  0   0  12  0  0    0      0
g           0  0  0  0   0   0  9  0    0      0
h           0  0  0  0   0   0  0  7    0      0
a_b         0  0  0  0   0   0  0  0    7      0
a_b_h       0  0  0  0   0   0  0  0    0      8
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...