python - Pandas:如何构建需要先前输出作为输入的行式应用

标签 python pandas scipy

我必须为每一行计算一些newValuenewValuedf.col1, df.col2 中非线性方程的解。我决定将其实现为逐行 df.apply()

但是,我想获取前一行的结果,并将其用作下一行优化的猜测。我对如何设置一无所知。以下是我的粗略代码草图,正如您所看到的,我不知道如何向 getFlow() 提供 guess

# this function does some computation given a row
def getFlow(row, guess = False):
    # define a residual to minimize
    def flowResidual(col1, col2):
        # here would be some code
        return np.abs(doSomeCalculationsAndCreateResidual(col1, col2))
    if guess == False:
        guess = 0.1
    inflowRate = optimize.fmin(flowResidual, guess, args=(row.col1, row.col2))
# I have some dataframe df
df['newValue'] = df.apply(getFlow, axis=1)

最佳答案

可以使用全局变量来跟踪猜测,但显式循环可能更清晰,如下面的伪代码所示。

ans = np.zeros(len(df))

for i, (col1, col2) in enumerate(df.itertuples(index=False)):
    ...
    if i == 0:
        guess = 0.1
    else:
        guess = ans[i-1]
    ans[i] = optimize(...)

df['newValue'] = ans

关于python - Pandas:如何构建需要先前输出作为输入的行式应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32630812/

相关文章:

python - 如何对具有最高(接近+1)或最低(接近零)相关系数的两个变量的数据点进行采样?

python - 将 pandas DataFrame 中的相同连续值分组

python - 当每个观察值都包含可能值的列表时,在 Pandas 中生成许多虚拟变量

python - 没有名为 "data_utils"的模块...但已下载

python - 关于 python 如何进行 GC 的一些有趣的事情

python - 在 AWS 上从 s3 读取文件到 sagemaker 会出现 403 禁止错误,但其他操作可以处理该文件

python - 寻找树内最近的节点

python - 如何计算 Python 中 2 个等高线之间的面积?

Python SciPy 索引错误 : the length of bounds is not compatible with that of x0

python - 无法构建 Dockerfile - : Not a directory Error using ADD command