次のようにpandasデータフレームがあります:
A B C
1 2 x
1 2 y
3 4 z
3 5 x
特定の列で同じ値を共有する行のうち、1行だけが残るようにします。上記の例では、列[〜#〜] a [〜#〜]および[〜#〜] b [〜#〜]を意味します。つまり、列の値[〜#〜] a [〜#〜]および[〜#〜] b [〜#〜]が複数回出現する場合データフレームには、1行のみが残っている必要があります(1行は重要ではありません)。
FWIW:いわゆる重複行の最大数(つまり、列[〜#〜] a [〜#〜]および[〜#〜] b [〜#〜]は同じです)は2です。
結果は次のようになります。
A B C
1 2 x
3 4 z
3 5 x
または
A B C
1 2 y
3 4 z
3 5 x
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