我有一些看起来大致如下的数据:

y=numpy.random.uniform(0,1,10)

yx_index=[2,5,6,8]
yx=numpy.random.normal(0,1,4)
sety=pandas.DataFrame(y,columns=['set_y'])
subset_yx=pandas.DataFrame(yx,columns=['subset'],index=yx_index)


输出:

set_y=

        set
0  0.548554
1  0.436084
2  0.192882
3  0.468712
4  0.290172
5  0.462640
6  0.072014
7  0.273997
8  0.242552
9  0.289873

set_x=

     set
2  0.943326
5  0.462640
6  2.433632
8  0.060528


set_x始终是set_y的子集。我的问题是,获取索引与set_y相同的set_x元素的最简单方法是什么?

因此,在上述情况下,所需的输出将是:

set_z=

     set
2  0.192882
5  0.462640
6  0.072014
8  0.242552

最佳答案

您可以使用许多可用的indexers之一。我建议.ix[]通常比loc / iloc更快:

In [86]: set_y.ix[set_x.index]
Out[86]:
        set
2  0.192882
5  0.462640
6  0.072014
8  0.242552

10-05 22:39