python - 未来的最小熊猫数据框
问题描述
我在 Pandas DataFrame 中有一个时间序列,我想为其添加一个具有(未来)最小值的新列。具体来说,假设我的时间序列中有以下值:
VAL
1
0
4
3
2
3
4
我想找到“向前看”的最小值。例如,前 2 个值的最小值是 0,然后接下来的三个值是 2(不再考虑 0,因为即使它是整体最小值,它已经过去了),然后是 3,最后是 4。
VAL MIN
1 0
0 0
4 2
3 2
2 2
3 3
4 4
任何想法如何使用 Pandas 或 Numpy 有效地做到这一点?谢谢!
解决方案
翻转它,使用np.minimum.accumulate
,翻转它——
In [252]: df['MIN'] = np.minimum.accumulate(df['VAL'][::-1])[::-1]
In [253]: df
Out[253]:
VAL MIN
0 1 0
1 0 0
2 4 2
3 3 2
4 2 2
5 3 3
6 4 4
推荐阅读
- python - 带有生成器的 Python listcomp
- matlab - MATLAB如何确定表达式的有效性/检查括号是否平衡?
- c - 更新我的代码以在 C 中采用超过 255 个字符的参数
- r - 按具有重置值的仓库位置数为动态排序的项目分配日期
- typescript - 如何在Angular 7中将孩子附加到div
- javascript - jQuery:如何计算 JSON 的结果
- javascript - 无法从未定义中读取属性“namedValues”
- mysql - MySQL Workbench 错误代码:1074。列长度对于列来说太大
- powershell - Get-ADUser 不缓存结果
- ansible - 来自 ios_command 的无效输入结果阻止标准输出在 ansible 中注册