迭代行并从上面的行中添加值 - Python

我有一个充当分类帐的专栏。每行中的值是收据(正)和出站(负)。我希望创建一个附加列,从上面的行中获取值并添加/减去当前值并给出总计 

http://img3.mukewang.com/647eeb5a000178ad04030184.jpg

下面是我试过的代码,但它所做的只是将值写入另一列:


mylist, df["consumption"]= []," " 

for i in range(1, len(thc) + 1):

    j = df.columns.get_loc('Ledger')

    x = (df.iat[i - 1, j])

    mylist.append(x)

df["consumption"] = mylist

我希望消费栏看起来像:

http://img4.mukewang.com/647eeb64000126c202010126.jpg

目的是使用此 df 来创建预测和线性图跟踪消耗。

谢谢您的帮助


牧羊人nacy
浏览 166回答 2
2回答

阿晨1998

您可以使用df.cumsum()df["consumption"] = df['Ledger'].cumsum()

开满天机

让我们将上述数据作为一个二维数组,其中id代表索引 0,transaction代表索引 1,date代表索引 2 和ledger代表索引值 3。所以我们将有一个二维数组结构[ [id1, transaction1, date1, ledger1 ], [id2, transaction2, date2,ledger2],.... ]legder现在我们要为每一行添加一个新的列消耗,它将是当前和之前的总和ledger,它将代表每一行的第 4 个索引值。account =  [    [ 0 , "Beg bal2019-2020 ",  " 2019-09-05" , 16875],                [ 1 , "3072 ",  " 2019-09-05" , -50],                [ 2 , "30874 ",  " 2019-09-05" , -50],                [ 3 , "247499 ",  " 2019-09-05" , -50],           ]current = 0for row in account:    row.append(current + row[3])    current =row[4]for i in account:    print(i)输出[0, 'Beg bal2019-2020 ', ' 2019-09-05', 16875, 16875][1, '3072 ', ' 2019-09-05', -50, 16825][2, '30874 ', ' 2019-09-05', -50, 16775][3, '247499 ', ' 2019-09-05', -50, 16725]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python