Ai
2 Star 4 Fork 17

王布衣/pandas

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
vector_rolling.go 1.07 KB
一键复制 编辑 原始数据 按行查看 历史
王布衣 提交于 2024-02-26 10:58 +08:00 . 优化Series的Rolling函数
package pandas
import "gitee.com/quant1x/num"
func (this vector[T]) Rolling(param any) RollingAndExpandingMixin {
window := num.Any2Window[num.DType](param)
w := RollingAndExpandingMixin{
Window: window,
Series: this,
}
return w
}
func (this vector[T]) v1Rolling(param any) RollingAndExpandingMixin {
window := num.Window[num.DType]{C: num.NaN()}
switch v := param.(type) {
case int:
window.C = num.DType(v)
case []num.DType:
window.V = v
case Series:
vs := v.DTypes()
window.V = vs
default:
panic(num.ErrInvalidWindow)
}
w := RollingAndExpandingMixin{
Window: window,
Series: this,
}
return w
}
func (this vector[T]) v2Rolling(param any) RollingAndExpandingMixin {
var N []num.DType
switch v := param.(type) {
case int:
N = num.Repeat[num.DType](num.DType(v), this.Len())
case []num.DType:
N = num.Align(v, num.NaN(), this.Len())
case Series:
vs := v.DTypes()
N = num.Align(vs, num.NaN(), this.Len())
default:
panic(num.ErrInvalidWindow)
}
w := RollingAndExpandingMixin{
Window: num.Window[num.DType]{V: N},
Series: this,
}
return w
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/quant1x/pandas.git
git@gitee.com:quant1x/pandas.git
quant1x
pandas
pandas
v1.5.2

搜索帮助