对于任何索引,返回前两个索引的最小值

时间:2018-08-04 10:35:21

标签: python pandas

population = pd.DataFrame({'village': pd.Series([15,4,1,2], index=['boys','girls','men','women']),
    'town': pd.Series([20,36,26,28], index=['boys','girls', 'men', 'women'])})

输出:

----  town    village
boys    20      15
girls   36      4
men     26      1
women   28      2

对于上面数据框中的任何索引,我希望该特定索引值是前两个索引值之间的最小值。

例如,我希望镇上的男人的价值是20,因为它是(36,20)之间的较小值

我尝试使用df.shift(2).cummin(axis=0)实现它,但这没用。

预期输出:

----  town    village
boys    NaN     NaN
girls   NaN     NaN
men     20      4
women   26      1

1 个答案:

答案 0 :(得分:1)

正如@Zero所说,因此您可以将其标记为已回答,可以使用:

population.shift(1).rolling(2).min()