根据索引和另一个数据帧中的值访问数据帧中的值

sma*_*t31 2 python indexing dataframe pandas

如何根据索引和标题列表从数据帧中获取值?

这些是我拥有的数据框:

a = pd.DataFrame([[1,2,3],[4,5,6],[7,8,9]], columns=['a','b','c'])
referencingDf = pd.DataFrame(['c','c','b'])
Run Code Online (Sandbox Code Playgroud)

基于相同的索引,我试图获得以下数据帧输出:

outputDf = pd.DataFrame([3,6,8])
Run Code Online (Sandbox Code Playgroud)

目前,我尝试了这个,但需要采用对角线值。我很确定有更好的方法:

a.loc[referencingDf.index.values, referencingDf[:][0].values]
Run Code Online (Sandbox Code Playgroud)

jez*_*ael 5

你需要lookup

b = a.lookup(a.index, referencingDf[0])
print (b)
[3 6 8]

df1 = pd.DataFrame({'vals':b}, index=a.index)
print (df1)
   vals
0     3
1     6
2     8
Run Code Online (Sandbox Code Playgroud)