首页 > 解决方案 > 是否可以合并两个有一些相似之处的表

问题描述

我是一个新的 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。

标签: pythonpandas

解决方案


使用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

推荐阅读