根据新列中的原始列和前一个单元计算新的DataFrame列

时间:2017-12-13 12:28:49

标签: python pandas dataframe

我正在尝试根据现有列计算DataFrame中的新列。新列值必须是原始列中同一行的值(此处为' interval')和新列中前一个值的总和。下图显示了公式。

   interval  new_column
0  670       = i0
1  664       = i1 + n_c0
2  680       = i2 + n_c1
3  672       = i3 + n_c2
4  673       = i4 + n_c3
...
n  ###       = in + i(n - 1)

目前我已通过列表计算并将其加入原始DataFrame。

temp = []
for i, val in enumerate(interval):
    if i == 0:
        temp.append(val / 1000)
    else:
        temp.append((val / 1000) + temp[i - 1])

我确信有办法做到这一点,我对熊猫的说法还不够流畅。

1 个答案:

答案 0 :(得分:1)

您需要除div然后cumsum

df['new'] = df['interval'].div(1000).cumsum()
   interval    new
0       670  0.670
1       664  1.334
2       680  2.014
3       672  2.686
4       673  3.359