我有一个数组为: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上到处都是,却找不到解决方法。
答案 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 }}(假设您没有任何缺失或重复的值),并根据新索引获取返回值。