根据来自不同列的值(以数组形式提供)提取数据框的索引

时间:2019-06-10 07:51:58

标签: python pandas

我有一个数组为:df1.values = array([1,2,3,4])。 现在,我想获取df2的索引,其中df2.x的值来自df1.values。因此,例如,如果df2.x.values= [1,3,4,2,5,6],那么我希望返回的是1,4,2,3,它们是df2的索引值,可以在其中找到df1的值。

我在stackoverflow上到处都是,却找不到解决方法。

1 个答案:

答案 0 :(得分:1)

如果我理解您的问题,那么应该可以:

import pandas as pd

df1 = pd.DataFrame([1,2,3,4],columns=['x'])
df2 = pd.DataFrame([1,3,4,2,5,6],columns=['x'])

df2['old_index']=df2.index.values
df2.set_index('x').loc[df1['x']]['old_index'].values

基本上,我们将df2的原始索引值(这些是您想要的返回值)提取为新列,将x列设置为使用{{1 }}(假设您没有任何缺失或重复的值),并根据新索引获取返回值。