输入数据
NucleusId数据源中断类型中断ID
1个CMRS
1个CMRS
1个源系统
1个源系统
2个CMRS
2个CMRS
2源系统
3 CMRS
3源系统
3源系统
4 CMRS
4源系统
5 CMRS
6源系统
7 CMRS
7 CMRS
7源系统
7源系统
7 CMRS
7源系统
所需的输出
NucleusId数据源中断类型中断ID
1 CMRS都多次匹配0
1 CMRS都多次匹配0
1个源系统都多次匹配0
1个源系统都多次匹配0
2个CMRS右匹配项1
2个CMRS右匹配项1
2个源系统权限多个匹配项
3个CMRS左多局比赛2
3个源系统剩余多个匹配项2
3个源系统剩余多个匹配项2
4个CMRS匹配3个
4个源系统匹配3个
5个CMRS左无比赛4
6源系统权限不匹配5
7个CMRS都多次匹配6
7个CMRS都多次匹配6
7个源系统都多次匹配6
7个源系统都多次匹配6
7个CMRS都多次匹配6
7个源系统都多次匹配6
以下是代码段
Sample_FileName ['Break Type'] ='None'
Sample_FileName ['Break Id'] = Sample_FileName.groupby(['NucleusId'])。ngroup()
Sample_FileName.loc [(Sample_FileName.duplicated('NucleusId',keep = False)== True),'中断类型'] ='匹配'
Sample_FileName.loc [(Sample_FileName.duplicated(['NucleusId','Data Source'],keep = False)&(Sample_FileName ['Data Source'] =='CMRS')),'Break Type'] = “多次正确配对”
Sample_FileName.loc [(Sample_FileName.duplicated(['NucleusId','Data Source'],keep = False)&(Sample_FileName ['Data Source'] =='Source System')),'Break Type'] ='左多场比赛'
Sample_FileName.loc [(Sample_FileName ['Break Type'] =='None')&(Sample_FileName ['Data Source'] =='CMRS'),'Break Type'] ='左无匹配'>
Sample_FileName.loc [(Sample_FileName ['Break Type'] =='None')&(Sample_FileName ['Data Source'] =='Source System'),'Break Type'] ='右无匹配'< / p>
print(Sample_FileName)
代码结果
NucleusId数据源中断类型中断ID
1个CMRS右多个匹配项0
1个CMRS右多个匹配项0
1个源系统剩余多个匹配项0
1个源系统剩余多个匹配项0
2个CMRS右匹配项1
2个CMRS右匹配项1
2个符合1个源系统
3个CMRS匹配2个
3个源系统剩余多个匹配项2
3个源系统剩余多个匹配项2
4个CMRS匹配3个
4个源系统匹配3个
5个CMRS左无比赛4
6源系统权限不匹配5
7个CMRS右匹配项6
7个CMRS右匹配项6
7个源系统剩余多个匹配项6
7个源系统剩余多个匹配项6
7个CMRS右匹配项6
7个源系统剩余多个匹配项6
目的是调和两个数据源,并将源系统数据保留为左侧数据,将CMRS数据保留为右侧数据。根据Nucleus Id的匹配结果,填充了不同的中断类型
有人可以帮助我取得理想的结果吗?