【发布时间】:2022-10-16 01:59:02
【问题描述】:
在 pandas 中矢量化路径相关函数(即中间结果取决于先前结果的函数)的有效方法是什么?将结果存储在矩阵中并对先前的结果进行索引不会提高 for 循环的性能。
a,b->f(x,y) 在以下数据帧上:
>>> pd.DataFrame({
'a': [1,3,5,7,7,7,4],
'b': [2,2,2,2,2,1,1],
'f(xy):[1,1,3,5,5,6,5],
})
a b f(xy)
0 1 2 1
1 3 2 1
2 5 2 3
3 7 2 5
4 7 2 5
5 7 1 6
6 4 1 5
函数在哪里(元语言):
if t==0
f(xy[t]) = a[t]
else:
if f(xy[t-1]) < a[t]-b[t]:
f(xy[t]) = a[t]-b[t]
else if f(xy[t-1]) > a[t-1]+b[t]:
f(xy[t]) = a[t]+b[t]
else:
f(xy[t]) = xy[t-1]
(t 是数据帧索引)
【问题讨论】: