【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.2 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】基本的なgoコマンド
2023.06.10
【Typescript】Reactでテキストをコピーするボタンを実装する
2023.07.30
Next.js+MarkdownのブログにTocbotを使って目次を作成する
2024.04.15
【Python】yamlを扱う
2023.04.25