Python - можно ли отобразить данные и сделать векторную матрицу? - PullRequest
0 голосов
/ 20 октября 2018

Я все еще новичок, начинающий изучать питон и программирование.и вот мои данные

  Doc1              Doc2
 class1  numid     class2 numid
  doc1a   d112       012  d112
  doc1a   d212       013  d212
  doc1a   d312       013  d312
  doc1b   d412       011  d312
  doc1b   d412       011  d412

Я хотел бы объединить их и увидеть результат как

           d112 d212 d312 d412 
doc1  doc2
doc1a  012   1   0   0   0
doc1a  013   0   1   1   0
doc1b  011   0   0   1   1

1 Ответ

0 голосов
/ 20 октября 2018

IIUC, используя pd.get_dummies и pd.merge

cols = ['class1', 'class2']
>>> pd.get_dummies(pd.merge(df, df2, how='outer').set_index(cols), prefix='', prefix_sep='')\
    .drop_duplicates()                                                         \
    .groupby(cols)                                                             \
    .sum()

Выходы

                 numid_d112   numid_d212    numid_d312    numid_d412
class1  class2              
doc1a   12       1            0             0             0
        13       0            1             1             0
doc1b   11       0            0             0             1
...