如何将前一行的结果添加到当前行的内容?

时间:2018-12-10 20:39:45

标签: python pandas

import pandas as pd
import numpy as np

df = pd.DataFrame({"a": [7, 2, 3], "b": [4, 5, 6], "c": [100, np.nan, np.NaN]})

df
Out[11]: 
   a  b      c
0  7  4  100.0
1  2  5    NaN
2  3  6    NaN

对于上述Python pandas DataFrame,我想对第0行进行操作: 计算列ab之间的差。其结果应添加到列c的内容中,并存储在(新)列d中。

对于第1行,第一步,应将第0行/第d列的内容存储在c列中。 此后,应该应用与之前针对第零行相同的算法。

执行完此操作后,所得的DataFrame将如下所示:

   a  b      c     d
0  7  4  100.0   103.
1  2  5  103.0   100.
2  3  6  100.0    97.

实际上,数据框具有比此小示例更多的行。因此,快速的计算速度非常重要。

用于计算此新数据框的解决方案会是什么样子?

1 个答案:

答案 0 :(得分:6)

您可以获取ab之间的差的累积总和,将其添加到列c的初始值中,然后用您的{新计算的c,向下移动1:

d