我还是一个新学生,开始学习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

最佳答案

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

10-06 06:38