Python 根据不同列中的值(作为数组提供)提取数据帧的索引

Python 根据不同列中的值(作为数组提供)提取数据帧的索引,python,pandas,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上的所有地方,但找不到如何执行此操作。如果我理解您的问题,此操作应该有效: import pandas as pd df1 = pd.DataFrame([1,2,3,4]

我有一个数组:
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上的所有地方,但找不到如何执行此操作。

如果我理解您的问题,此操作应该有效:

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
列设置为一个新索引。set_index
(假设您没有任何缺失或重复的值),并基于新索引获取返回值