未来的最小熊猫数据框

Posted

技术标签:

【中文标题】未来的最小熊猫数据框【英文标题】:Future minimum pandas dataframe 【发布时间】:2019-12-21 05:39:43 【问题描述】:

我在 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 有效地做到这一点?谢谢!

【问题讨论】:

【参考方案1】:

翻转它,使用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

【讨论】:

【参考方案2】:

使用cummin

df['MIN'] = df.VAL[::-1].cummin()[::-1]

    VAL  MIN
0    1    0
1    0    0
2    4    2
3    3    2
4    2    2
5    3    3
6    4    4

【讨论】:

【参考方案3】:

我们可以使用expandingmin

df['New']=df.VAL.iloc[::-1].expanding(min_periods=1).min()

【讨论】:

以上是关于未来的最小熊猫数据框的主要内容,如果未能解决你的问题,请参考以下文章

如何识别从今天到过去和未来(不包括周末)的三个工作日,并将它们放入熊猫数据框中?

根据熊猫数据框中的条件获取最大值和最小值

熊猫数据框:在固定其他列的列中提取具有特定标准/条件最小值的数据[重复]

查找熊猫索引数据帧的最小值和最大值

从几个嵌套字典制作熊猫数据框

在熊猫中使用单独的时间戳列进行最小/最大分组[重复]