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