我是新的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。
最佳答案
使用merge
和get_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