在pandas

时间:2016-05-10 18:31:54

标签: python 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])]

1 个答案:

答案 0 :(得分: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