【发布时间】:2014-07-22 16:08:54
【问题描述】:
我有一个使用 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
这是一种更优雅的方式吗?
【问题讨论】:
-
显示你想要的输出结果
-
杰夫,我得到了我想要的输出。我只是想看看 pandas 是否存在另一种方式,例如 apply 或 shift。我试过了,但我想不通
-
不,我的意思是最好在问题中实际显示输出