2016-05-10 294 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

你可以使用get_indexer_for找到df['A']对应的值[3,6,3]序索引。然后使用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