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

标签 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

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

例如,我预计 men in town 的值为 20,因为它是 (36,20) 之间的较小值

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

预期输出:

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

最佳答案

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

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

关于python - 对于任何索引,返回前两个索引中的最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51684727/

相关文章:

python - Pandas Python - 保存没有日期时间部分的数据框

python - Django 和 Shibboleth

python - 我们应该如何用 Nose 测试异常?

python - 如何在 python 中组合 .tif 堆栈?

python - ValueError 使用 pd.read_json 读取大数据集

python-2.7 - Pandas 在时间序列上滚动平均值

python - 如何在给定有序数字系列的情况下创建唯一的 id 列?

python - 如何在 scikit-learn 中显示每次迭代的成本函数?

python - 如何从以键为列和行索引的字典构造pandas DataFrame

python - future 警告 : Using a non-tuple sequence for multidimensional indexing is deprecated use `arr[tuple(seq)]`