繁体   English   中英

迭代行并添加上行的值 - Python

[英]Iterating Rows and adding the value from the row above- Python

我有一个作为分类帐的列。 每行中的值是收据(正)和出站(负)。 我正在寻找创建一个额外的列,该列从上面的行中获取值并添加/减去当前值并给出总计在此处输入图像描述

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

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

我希望消费列看起来像: 在此处输入图像描述

目的是使用此 df 创建一个预测和一个内衬 plot 跟踪消耗。

谢谢您的帮助

您可以使用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 = 0
for row in account:
    row.append(current + row[3])
    current =row[4]

for i in account:
    print(i)

Output

[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]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM