2017-06-11 3 views
4

パンダのデータフレームから重複行を削除します。私は唯一の1行は、特定の列に同じ値を共有する行のままであることを望ん次のように私はパンダのデータフレームを持っている唯一のいくつかの列が同じ値を持つ

A B C 
1 2 x 
1 2 y 
3 4 z 
3 5 x 

。上の例では、私は列ABを意味します。つまり、列ABの値がデータフレーム内で複数回出現する場合は、1行だけ残す必要があります(これは関係ありません)。

FWIW:

A B C 
1 2 x 
3 4 z 
3 5 x 
:(カラム Bが同じであることがある)いわゆる重複行の最大数は、結果はこのようlookeべき2

あります

または

A B C 
1 2 y 
3 4 z 
3 5 x 

答えて

5

使用drop_duplicatesパラメータとsubset 、維持するための唯一の最後の重複行はkeep='last'追加:

df1 = df.drop_duplicates(subset=['A','B']) 
#same as 
#df1 = df.drop_duplicates(subset=['A','B'], keep='first') 
print (df1) 
    A B C 
0 1 2 x 
2 3 4 z 
3 3 5 x 

df2 = df.drop_duplicates(subset=['A','B'], keep='last') 
print (df2) 
    A B C 
1 1 2 y 
2 3 4 z 
3 3 5 x 
関連する問題