2016-05-10 2 views
1

Я заполняю DataFrame на основе значений столбца. Строки в кадре данных могут быть повторены.Выбор повторяющихся строк в pandas

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

Вы можете использовать get_indexer_for найти порядковый индекс, соответствующий значениям [3,6,3] в df['A']. Затем используйте df.iloc для поиска строки:

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

Сладкое. Это то, что я искал. – learner

Смежные вопросы