Pandas объединение уникальных элементов на основе трех разных столбцов и добавление подписи - PullRequest
1 голос
/ 31 января 2020

У меня есть датафрейм, как показано ниже. Я хотел бы получить уникальные вхождения строк, объединяющие три значения столбцов, а затем добавить 4-й столбец, который представляет собой ха sh из трех столбцов, используя pandas и соответствующий типу ниже

Вот набор данных:

Type   LocationA  LocationB  LocationC  Model
Pipes  Baltimore  Stanford   Vienna     C22
Pipes  Baltimore  Vienna     Stanford   B22
Pipes  Baltimore  Barcelona  London     B22
Tyres  Sao Paolo  Cartagena  Maldives   X23
Pipes  Baltimore  Stanford   Vienna     C22
Pipes  Baltimore  Stanford   Vienna     Y78
Pipes  Baltimore  Stanford   Vienna     NH9

, поэтому, если я отфильтрую типы, соответствующие "трубам", я получу уникальные элементы, как показано ниже:

Type   LocationA  LocationB  LocationC Occurances   Model             Hash(signature)
Pipes  Baltimore  Stanford   Vienna    4            C22,Y78,NH8        f7c360dd7eb4f723a4af838e871f8225
Pipes  Baltimore  Vienna     Stanford  1            B22                0cfe49c08b63158a880d6273ee6cb067  
Pipes  Baltimore  Barcelona  London    1            B22                94c76fd213b5105c59bbb6d34a18079c

Ха sh Я использую это простой и простой md5 га sh из трех столбцов. Шоудл я использую групповую и уникальную? Или уникальный с условным соответствием?

1 Ответ

0 голосов
/ 31 января 2020

Вы можете использовать transform метод подсчета идентичных строк:

df['Occurences'] = df.drop(columns=['Model']).groupby(['Type', 'LocationA', 'LocationB', 'LocationC'])['Type'].transform('count')

...