首页 > 解决方案 > 在调用 apply() 之前将列添加到具有先前行值的 pandas.DataFrame

问题描述

我需要向 a 添加一个新列,其中的值是根据前一行pandas dataframe中一列的值计算得出的。

来自非功能性背景(C#),我试图避免循环,因为我读到它是一种反模式。

我的计划是使用为先前的值series.shift添加一个新列,调用并最终删除附加列。例如:dataframedataframe.apply

def my_function(row):
  # perform complex calculations with row.time, row.time_previous and other values
  # return the result

df["time_previous"] = df.time.shift(1)
df.apply(my_function, axis = 1)
df.drop("time.previous", axis=1)

实际上,我需要像这样创建四个额外的列。有没有更好的选择来完成这个没有循环?这是个好主意吗?

标签: pythonpandas

解决方案


推荐阅读