2016-12-24 9 views
5

列の値のすべての一意の組み合わせを抽出したいCol1,Col2およびCol3のは、以下のデータフレーム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パラメータ::

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

もっと多くの列を追加できたらどうなりますか?私は3つの列のユニークな値を取得する必要があります。これは何かのようなものでしょうか?: 'df [[" Col1 "、" Col2 "、" Col3 "]] drop_duplicates()' – Dinosaurius

+0

はい、正確には –

+1

を更新してください@RomanPekar - OPは 'print(df.drop_duplicates (サブセット= ['Col1'、 'C​​ol2'、 'C​​ol3'])) ' – jezrael

関連する問題