如何在Pandas idxmax()中获取上下行的索引值

8qgya5xd  于 2022-11-05  发布在  其他
关注(0)|答案(1)|浏览(170)

下面的代码:

import pandas as pd
df = pd.util.testing.makeDataFrame()
max_index = df.A.idxmax()

我尝试做的是得到 Dataframe 中max_index上下的索引值。你能告诉我如何完成吗?

k2arahey

k2arahey1#

如果您不确定索引是否有重复项,一个安全的方法是:

import pandas as pd
df = pd.util.testing.makeDataFrame()
max_index = df.A.idxmax()
before = df['A'].shift(-1).idxmax()
after = df['A'].shift().idxmax()

如果索引是唯一的:

i = df.index.get_loc(max_index)
before, after = df.index[i-1], df.index[i+1]

或者,它可能稍微更高效,并且还可以处理重复的索引:

i = df.reset_index()['A'].idxmax()
before, max_index, after = df.index[i-1:i+2]

相关问题