python - Pandas 自定义指数衰减
问题描述
假设我有以下数据框。
df = pd.DataFrame({"a": [1, 0, 0, 2, 0]})
我想构建一个基于 df 的新数据框
newdf[0] = 1 or nan
newdf[1] = 0 + newdf[0] * exp(-alpha) # Alpha is some value.
newdf[2] = 0 + newdf[1] * exp(-alpha)
newdf[3] = 2 + newdf[2] * exp(-alpha)
newdf[4] = 0 + newdf[3] * exp(-alpha)
基本上我想构建一个新的数据框,它接受瞬时变化并衰减它自己的值。
有没有一种优雅的方式来实现这个使用pd.rolling
or pd.ewm
?我想避免任何 for 循环,因为数据框有很多行和列。
谢谢
解决方案
利用 -
alpha = 2
df['new'] = 1 or np.nan
df['new'] = df['a'] + df['a'].shift(-1)*np.exp(-alpha)
import numpy as np
是一个依赖。df
遗嘱中的最后一行就是以此为np.nan
基础的。
推荐阅读
- c++ - 将 flatbuffers 对象转换为 JSON 时,如何处理二进制数据?
- pyspark - AWS Glue - 在加入时面临内存问题并将其存储在 S3 中
- html - Tangerine `tangy-input` onkeyup 事件
- c - 如何计算连续赢/输并在连续输赢被打破后重置?
- c# - 保存在 word VSTO 中的按钮
- react-native - React Native Viro AR 应用程序在添加包时崩溃
- sql - Varchar 标量函数,返回在 SQL Server 2019 中截断
- android - 尝试导入 OpenGL C++ 项目时应用程序崩溃
- macos - 在 macOS 下增加 SwiftUI 中的模糊半径时,是否可以去除四个边缘周围的黑色效果?
- javascript - 展开 Firestore 搜索