如何在Python中使用Pandas获取多行配置的DataFrame索引?

时间:2015-04-21 06:09:00

标签: python pandas

考虑DataFrame P1P2

P1 =
   A  B
0  0  0
1  0  1
2  1  0
3  1  1

P2 = 
   A  B  C
0  0  0  0
1  0  0  1
2  0  1  0
3  0  1  1
4  1  0  0
5  1  0  1
6  1  1  0
7  1  1  1

我想知道是否有一种简洁有效的方法可以在P1中获取['A','B']P2列的行(元组/配置/赋值)的索引。 也就是说,给定P2['A','B']

P2['A','B'] = 
   A  B
0  0  0
1  0  0
2  0  1
3  0  1
4  1  0
5  1  0
6  1  1
7  1  1

我想获得[0, 0, 1, 1, 2, 2, 3, 3],因为P2['A','B']中的第一行和第二行对应P1中的第一行,依此类推。

1 个答案:

答案 0 :(得分:1)

您可以使用merge并提取重叠键

In [3]: tmp = p2[['A', 'B']].merge(p1.reset_index())

In [4]: tmp
Out[4]:
   A  B  index
0  0  0      0
1  0  0      0
2  0  1      1
3  0  1      1
4  1  0      2
5  1  0      2
6  1  1      3
7  1  1      3

获取价值。

In [5]: tmp['index'].values
Out[5]: array([0, 0, 1, 1, 2, 2, 3, 3], dtype=int64)

然而,可能有一个原生的NumPy方法来做到这一点。