未来的最小熊猫数据框
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】:我们可以使用expanding
和min
df['New']=df.VAL.iloc[::-1].expanding(min_periods=1).min()
【讨论】:
以上是关于未来的最小熊猫数据框的主要内容,如果未能解决你的问题,请参考以下文章
如何识别从今天到过去和未来(不包括周末)的三个工作日,并将它们放入熊猫数据框中?