我已对df进行了分组,以便根据其国家/地区代码对列进行分组。即:
DataGroup = df.groupby('COUNTRY_CODE').apply(lambda x: x.sort_values('Name'))
DataGroup
并且我已经根据所属的国家/地区代码对所有列进行了分组。现在,我想从每个“国家/地区代码”组的“名称”列中获取唯一的名称,以便例如在“英国”中,如果该列包含名称:['John','Mary','Fatema','John' ],如何仅在df列中显示唯一值?
希望这有意义吗?
答案 0 :(得分:0)
是的,您可以通过使用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