python-是否可以映射数据并制作矢量矩阵?

时间:2018-10-19 22:56:12

标签: python pandas list dataframe mapping

我还是一个新手,开始学习python和编程。 这是我的数据

  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 :(得分:0)

IIUC,使用pd.get_dummiespd.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