python pandas dataframe - can't figure out how

2019-07-28 05:16发布

问题:

I have 2 dataframes of numerical data. Given a value from one of the columns in the second df, I would like to look up the index for the value in the first df. More specifically, I would like to create a third df, which contains only index labels - using values from the second to look up its coordinates from the first.

listso = [[21,101],[22,110],[25,113],[24,112],[21,109],[28,108],[30,102],[26,106],[25,111],[24,110]]
data = pd.DataFrame(listso,index=list('abcdefghij'), columns=list('AB'))
rollmax = pd.DataFrame(data.rolling(center=False,window=5).max())

So for the third df, I hope to use the values from rollmax and figure out which row they showed up in data. We can call this third df indexlookup.

For example, rollmax.ix['j','A'] = 30, so indexlookup.ix['j','A'] = 'g'.

Thanks!

回答1:

You can build a Series with the indexing the other way around:

mapA = pd.Series(data.index, index=data.A)

Then mapA[rollmax.ix['j','A']] gives 'g'.