PythonのPandasのSeriesで重複した値のあつかいには「重複を許す」「重複を1つの値にする」「重複を削除する」の3つの動作が可能です。
重複を削除するにはdrop_duplicatesメソッドを使います。
この記事ではSeriesで重複した値のあつかいについて解説します。
PandasのSeriesで重複した値のあつかい
PandasのSeriesで重複した値のあつかいには「重複を許す」「重複を1つの値にする」「重複を削除する」の3つの動作が可能です。
それぞれについてサンプルを見ながら解説します。
重複を許す
PandasのSeriesで重複を許すのはDefault(既定)の動作です。
#Seriesの重複を省く import pandas as pd taro = [ 1, 2, 3, 1, 4, 2, 5 ] series_taro = pd.Series( taro ) print( series_taro )
上記のコードの実行結果は
0 1 1 2 2 3 3 1 4 4 5 2 6 5 dtype: int64
となり値「1」と「2」が重複していますが、そのままSeriesのデータとして出力されています。
重複を1つの値にする
PandasのSeriesで重複した値を削除するにはdrop_duplicatesメソッドを使います。
drop_duplicatesはDefault(既定)の動作で重複した値を最初に出てきた1つめだけにしてSeriesを出力します。
#Seriesの重複を省く import pandas as pd taro = [ 1, 2, 3, 1, 4, 2, 5 ] series_taro = pd.Series( taro ) #重複した値を最初の1だけにする print( series_taro.drop_duplicates() )
上記のコードの実行結果は
dtype: int64 0 1 1 2 2 3 4 4 6 5
となり、インデックスラベルから重複した値の1番目のものをSeriesに出力していることがわかります。
重複を削除する
PandasのSeriesで重複した値を完全に削除するにはdrop_duplicatesメソッドのkeep引数を使います。
#Seriesの重複を省く import pandas as pd taro = [ 1, 2, 3, 1, 4, 2, 5 ] series_taro = pd.Series( taro ) #重複した値をすべて取り除く print( series_taro.drop_duplicates( keep=False ) )
上記の実行結果は
2 3 4 4 6 5 dtype: int64
となり、重複している値のすべてが削除されてSeriesに出力されています。