工作中有可能会遇到两个DataFrame表中多个外键连接的情况,比如:
data1为总表
djh: 单据号(相同的单据号可能不是同一笔消费产生,不是唯一标识)
…
dtime: 消费产生的时间
syjh: 收银机号
data2为会员表
dtime: 会员消费产生的时间
…
jf: 此次消费的会员积分
syjh: 收银机号
djh: 单据号(相同的单据号可能不是同一笔消费产生)
那么可以从总表中分离出会员数据和非会员数据
a = pd.DataFrame(data2[['djh', 'syjh']]) # 也可以加上dtime,这里只做演示
a.drop_duplicates(inplace=True) # 一定要去重
b = data1.merge(a, on=['djh','syjh']) # b为会员数据
c = data1.append(b).drop_duplicates(keep=False) #求data1和b的差集
数据来源:2018全国大学生数学建模C题
链接:https://pan.baidu.com/s/1mefr6E8S6Glt1IIhJD1qTQ
提取码:9zyi