从原始数据来看,有重复的数据。具有不同数据库的重复项必须与前一个表的后面相结合,是否有任何方法可以通过比较数据之间的关系将两个表合并为一个表,如下所示?有什么方法可以挑选出标题相同而其他列都不同的那些
通过使用drop.duplicates和重复的原始数据,我通过掩盖不同的数据库获得了两个表,但是在其他列中进行了重复,并希望使用字典对其进行比较,但是通过在两个表中将行作为字典进行比较,则键是在每本字典中都一样,我无法将它们合并在一起。
这是给出的原始数据
DB TITLE ISSN IBSN
0 M a 1 NaN
1 M d 1 NaN
2 M c 1 NaN
3 N b 1 NaN
4 N a 1 NaN
5 N d 1 NaN
6 O c 1 NaN
7 O e 1 NaN
8 O a 1 NaN
9 O b 1 NaN
10 M a 2 2
11 N a 2 NaN
通过使用drop_duplicates和重复:
>>>df1=df.drop_duplicates(['TITLE','ISSN','IBSN'])
>>>index=df.duplicated(['TITLE','ISSN','IBSN'])
>>>df2=df[index]
DB TITLE ISSN IBSN DB TITLE ISSN IBSN
0 M a 1 NaN 0 N a 1 NaN
1 M d 1 NaN 1 N d 1 NaN
2 M c 1 NaN 2 O c 1 NaN
3 M a 2 2 3 O a 1 NaN
4 N a 2 NaN 4 O b 1 NaN
5 N b 1 NaN
6 O e 1 NaN
df1 df2
这是我从行中获得的字典:
{'DB': 'N', 'TITLE': 'a', 'ISSN': 1, 'IBSN': 'NaN'}
{'DB': 'M', 'TITLE': 'a', 'ISSN': 1, 'IBSN': 'NaN'}
我希望输出是
DB TITLE ISSN IBSN DB TITLE ISSN ISBN DB TITLE ISSN IBSN
0 M a 1.0 NaN N a 1.0 NaN O a 1.0 NaN
1 N b 1.0 NaN O b 1.0 NaN NaN NaN NaN NaN
2 M d 1.0 NaN N d 1.0 NaN NaN NaN NaN NaN
3 M c 1.0 NaN O c 1.0 NaN NaN NaN NaN NaN
4 O e 1.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN
5 M a 2.0 2.0 NaN NaN NaN NaN NaN NaN NaN NaN
6 N a 2.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN
列中“ TITLE”的顺序并不重要,但是“ DB”必须从左到右按字母顺序排序,并且null始终在最后。