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