Pandas: 重複したインデックスを取得する 質問する

Pandas: 重複したインデックスを取得する 質問する

データフレームが与えられた場合、列に重複した値を持たない重複インデックスを取得し、どの値が異なるかを確認したいと思います。

具体的には、次のデータフレームがあります。

import pandas as pd
wget https://www.dropbox.com/s/vmimze2g4lt4ud3/alt_exon_repeatmasker_intersect.bed
alt_exon_repeatmasker = pd.read_table('alt_exon_repeatmasker_intersect.bed', header=None, index_col=3)

In [74]: alt_exon_repeatmasker.index.is_unique
Out[74]: False

また、インデックスの一部には 9 列目の値 (この位置の DNA 反復要素のタイプ) が重複しており、個々の位置 (各インデックス = ゲノムの位置) の反復要素の異なるタイプが何であるかを知りたいです。

これには何らかのものが必要になると思いますgroupbyが、できればgroupby忍者が助けてくれることを願っています。

さらに単純化するために、インデックスと繰り返しタイプだけがあれば、

genome_location1    MIR3
genome_location1    AluJb
genome_location2    Tigger1
genome_location3    AT_rich

したがって、出力では、すべての重複インデックスとその繰り返しタイプを次のように表示したいと思います。

genome_location1    MIR3
genome_location1    AluJb

編集: おもちゃの例を追加しました

ベストアンサー1

これも便利で非常に簡潔です:

df[df.index.duplicated()]

これは重複した行の 1 つだけを返すことに注意してください。したがって、重複した行をすべて表示するには、次のようにします。

df[df.index.duplicated(keep=False)]

おすすめ記事