我是新的python用户,并尝试合并具有相似信息的一列的数据框。

Data 1           Data2
DocID GroupID    DocID ClassID
122     A12      121     A
122     A24      121     B
123     C12      122     C
124     C23      123     C
125     A12      123     D


我希望结果会像这样

Results
          DocID  121  122  123  124  125
GroupID ClassID
  Null     A      1    0    0    0    0
  Null     B      1    0    0    0    0
  A12      C      0    1    0    0    0
  A24      C      0    1    0    0    0
  C12      C      0    0    1    0    0
  C12      D      0    0    1    0    0
  A12     Null    0    0    0    0    1


实际上,我正在考虑映射功能并删除Null。

最佳答案

使用mergeget_dummies

df2 = df.merge(df1, on='DocID', how='outer').set_index(['GroupID','ClassID'])

df2 = pd.get_dummies(df2.DocID).sort_index(level=0)
print (df2)


输出:

                      121    122      123    124    125
GroupID  ClassID
    NaN     A          1      0        0      0      0
            B          1      0        0      0      0
    A12    NaN         0      0        0      0      1
            C          0      1        0      0      0
    A24     C          0      1        0      0      0
    C12     C          0      0        1      0      0
            D          0      0        1      0      0
    C23    NaN         0      0        0      1      0

10-04 15:57