Python Pandas,使用 Dataframe 中的先前值

标签 python pandas

我有一个使用 b(t-1) 变量的函数,例如:

def test_b(a,b_1):
     return a + b_1

假设以下数据框:

df = pd.DataFrame({'a':[1,2,3],'b':np.nan})

我正在分配 b_1 初始值:

df['b'].ix[0]=0

然后(利用我的 Matlab 经验),我使用循环:

for i in range(1,len(df)):
    df['b'].ix[i] = test_b(df['a'].ix[i],df['b'].ix[i-1])

输出:

  a|b
0|1|0
1|2|2
2|3|5

这是一种更优雅的方式吗?

最佳答案

你永远不想做这样的作业,因为这是 chained indexing

这是一个循环关系,因此 ATM 要想以超高性能的方式做到这一点并不容易,尽管请参阅 here

here 是一个关于此问题的开放问题,其中包含指向 this 的指针,该指针使用 ifilter 来解决该关系。

关于Python Pandas,使用 Dataframe 中的先前值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23996260/

相关文章:

python - get_dummies(),异常 : Data must be 1-dimensional

python - Dataframe 上的 Pandas 条件返回 TypeError : '>' not supported between instances of 'str' and 'int'

Python、Matplotlib : Normalising multiple plots to fit the same arbitrary axis limits

python - 如何强制决策树分成不同的类

python - 如何在 Pandas 数据透视表中获取交替值列?

python - 基于两列删除重复项同时删除不一致的数据

python - 将 pandas 列中的关键字与另一个元素列表匹配

python - 更改光标在条目小部件中的位置

python - 如何在 Ubuntu 上设置本地 Django 开发环境?

python - 分割数据帧的行并将它们作为单独的行存储在同一数据帧中