有关使用Groupby和重复项的详细信息

时间:2018-08-20 05:11:53

标签: python pandas-groupby

输入数据

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的匹配结果,填充了不同的中断类型

有人可以帮助我取得理想的结果吗?

0 个答案:

没有答案