2016-12-24 104 views
5

我想提取列的所有值的唯一组合Col1,Col2Col3。比方说,有以下数据框df如何获取特定列的值的所有唯一组合

df = 

Col1 Col2 Col3 
12  AB  13 
11  AB  13 
12  AB  13 
12  AC  14 

答案是:

unique = 

Col1 Col2 Col3 
12  AB  13 
11  AB  13 
12  AC  14 

我知道如何获得特定列的唯一值,即df.Col1.unique(),但不能确定唯一组合。

回答

5

有此方法 - pandas.DataFrame.drop_duplicates

>>> df.drop_duplicates() 
    Col1 Col2 Col3 
0 12 AB 13 
1 11 AB 13 
3 12 AC 14 

你可以做到这一点inplace还有:

>>> df.drop_duplicates(inplace=True) 
>>> df 
    Col1 Col2 Col3 
0 12 AB 13 
1 11 AB 13 
3 12 AC 14 

如果你需要得到某些列的唯一值:

>>> df[['Col2','Col3']].drop_duplicates() 
    Col2 Col3 
0 AB 13 
3 AC 14 

正如@jezrael所示,你也可以考虑使用subset参数drop_duplicates()

>>> df.drop_duplicates(subset=['Col2','Col3']) 
    Col1 Col2 Col3 
0 12 AB 13 
3 12 AC 14 
+0

如果我可以更多的列?我只需要获得三列的唯一值。 df [[“Col1”,“Col2”,“Col3”]]。drop_duplicates()' – Dinosaurius

+0

是的,看到更新 –

+1

@RomanPekar - 我想OP想要'print(df.drop_duplicates (subset = ['Col1','Col2','Col3']))' – jezrael