我有一些看起来大致如下的数据:
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