我正在寻找一种方法来计算一个系列没有窗口(*)分钟。你知道吗
让我们考虑下面的Series
In [26]: s = pd.Series([10, 12, 14, 9, 10, 8, 16, 20])
Out[26]:
0 10
1 12
2 14
3 9
4 10
5 8
6 16
7 20
dtype: int64
我想拍一部像这样的连续剧
0 10
1 10
2 10
3 9
4 9
5 8
6 8
7 8
dtype: int64
我试过了
s.rolling().min()
但我得到以下错误
TypeError: rolling() missing 1 required positional argument: 'window'
是我干的
r = s.copy()
val_min = r.iloc[0]
for i, (idx, val) in enumerate(r.iteritems()):
if i > 0:
if val < val_min:
val_min = val
else:
r[idx] = val_min
并且有一个正确的答案
In [30]: r
Out[30]:
0 10
1 10
2 10
3 9
4 9
5 8
6 8
7 8
dtype: int64
但是我认为Pandas方法应该存在(而且效率更高),或者如果不存在,应该实现它。你知道吗
(*)“滚动”可能不是合适的术语,也许应该将其命名为“本地”min
编辑:它实际上被命名为累积最小值或扩展最小值
使用^{} :
您可以使用^{} :
另一种方法是使用} ):
s.expanding.min
(参见^{输出:
相关问题 更多 >
编程相关推荐