Как объединить повторяющиеся строки в фрейме данных - PullRequest
1 голос
/ 17 апреля 2019

Исходные данные дублируются.Дубликаты с разными БД должны быть соединены с предыдущим. Есть ли способ объединить две таблицы в одну, как показано ниже, сравнивая данные?Есть ли какой-нибудь способ выделить те, которые имеют только одно и то же название, а другие столбцы отличаются?

Исходные данные, использующие 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' должны быть отсортированы в алфавитном порядке слева направо и нольвсегда в конце.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...