【Pandas】DataFrameでIndexが重複している行を削除する
2022.09.23
2024.03.24
プログラミング
pandasPython
はじめに
PandasのDataFrameからIndexが重複している行を削除する方法を紹介します。
Indexが重複している行を削除
pandas.Index.duplicated
を使ってIndexが重複した行を削除します。
やり方は下記の通りです。
1# 重複した最初の行を残す場合(デフォルト)
2df = df[~df.index.duplicated(keep='first')]
3
4# 重複した最後の行を残す場合
5df = df[~df.index.duplicated(keep='last')]
pandas.Index.duplicated — pandas 2.2.3 documentation
試してみる
実際にどのようになるか試してみます。
まずはDataFrameを用意します。
1import pandas as pd
2
3idx = pd.Index(['lama', 'cow', 'lama', 'beetle', 'cow'])
4data = {'A' : range(5), 'B' : range(5)}
5df = pd.DataFrame(data=data, index=idx)
A | B | |
---|---|---|
lama | 0 | 0 |
cow | 1 | 1 |
lama | 2 | 2 |
beetle | 3 | 3 |
cow | 4 | 4 |
Indexが重複した中から最初の行を残すと下記のようになります。
1df = df[~df.index.duplicated(keep='first')]
A | B | |
---|---|---|
lama | 0 | 0 |
cow | 1 | 1 |
beetle | 3 | 3 |
一方で、Indexが重複した中から最後の行を残すと下記のようになります。
1df = df[~df.index.duplicated(keep='last')]
A | B | |
---|---|---|
lama | 2 | 2 |
beetle | 3 | 3 |
cow | 4 | 4 |
参考
- python - Remove pandas rows with duplicate indices - Stack Overflow
- pandas.Index.duplicated — pandas 1.5.0 documentation
Share
関連記事
【Go】マップの値でソートされたキーを出力する
2023.09.15
【Python】datetimeの基本的な使い方
2021.09.01
Cobraを使ってさっと簡単なCLIを作ってみる
2024.01.26
seabornで複数のグラフを並べて描画する
2022.07.23