Есть ли строка кода, которую я могу запустить, чтобы получить уникальные значения из одного столбца на основе группового? - PullRequest
0 голосов
/ 28 марта 2019

Я сделал groupby на df, чтобы сгруппировать столбцы по его коду страны.Т.е.:

DataGroup = df.groupby('COUNTRY_CODE').apply(lambda x: x.sort_values('Name'))
DataGroup

и мне удалось сгруппировать все столбцы на основе кода страны, к которой они принадлежат.Теперь я хотел бы получить уникальные имена из столбца «Имя» из каждой группы кодов стран, например, в «Великобритания», если столбец содержит имена: ['Джон', 'Мэри', 'Фатема', 'Джон'], как мне будут представлены только уникальные значения в столбце df?

Надеюсь, это имеет смысл?

1 Ответ

0 голосов
/ 28 марта 2019

да, вы можете достичь этого, используя drop_duplicates и указав подмножество, которое вы проверяете: DataGroup.drop_duplicates(subset=["COUNTRY_CODE", "Name"])

Полный пример:

import pandas as pd
df = pd.DataFrame([("NO", "John"),
                   ("NO", "Jane"),
                   ("NO", "John"),
                   ("SE", "Ville")], columns=["COUNTRY_CODE","Name"])
DataGroup = df.groupby('COUNTRY_CODE').apply(lambda x: x.sort_values('Name'))
print(DataGroup)
DataGroup = DataGroup.drop_duplicates(subset=["COUNTRY_CODE", "Name"])
print(DataGroup)

Output:
               COUNTRY_CODE   Name
COUNTRY_CODE                      
NO           1           NO   Jane
             0           NO   John
             2           NO   John
SE           3           SE  Ville
               COUNTRY_CODE   Name
COUNTRY_CODE                      
NO           1           NO   Jane
             0           NO   John
SE           3           SE  Ville

...