2016-05-10 6 views
1

私は、列の値に基づいてデータフレームを作成しています。データフレーム内の行が繰り返されることがあります。パンダで重複する行を選択する

df = DataFrame({'A' : [5,6,3,4], 'B' : [1,2,3, 5]}) 
out[16]: 
    A B 
0 5 1 
1 6 2 
2 3 3 
3 4 5 

df[df['A'].isin([3, 6])] 


Out[17]: 
    A B 
1 6 2 
2 3 3 

これは期待されています。私が必要なのは何か違うものです。私は重複する行を持つ必要があります。どのように可能ですか?

df[df['A'].isin([3, 6,3])] 

答えて

2

あなたはdf['A']内の値[3,6,3]に対応する序数インデックスを検索するためにget_indexer_forを使用することができます。

import pandas as pd 
df = pd.DataFrame({'A' : [5,6,3,4], 'B' : [1,2,3, 5]}) 
idx = pd.Index(df['A']).get_indexer_for([3,6,3]) 
print(df.iloc[idx]) 

プリント

A B 
2 3 3 
1 6 2 
2 3 3 
+0

スウィート:その後の行をルックアップするためにdf.ilocを使用しています。これは私が探していたものです。 – learner

関連する問題