为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

牧羊人nacy 2023-06-06 16:16:05
我有一个充当分类帐的专栏。每行中的值是收据(正)和出站(负)。我希望创建一个附加列,从上面的行中获取值并添加/减去当前值并给出总计 下面是我试过的代码,但它所做的只是将值写入另一列: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 来创建预测和线性图跟踪消耗。谢谢您的帮助
查看完整描述

2 回答

?
阿晨1998

TA贡献2037条经验 获得超6个赞

您可以使用df.cumsum()

df["consumption"] = df['Ledger'].cumsum()


查看完整回答
反对 回复 2023-06-06
?
开满天机

TA贡献1786条经验 获得超13个赞

让我们将上述数据作为一个二维数组,其中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)

输出


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


查看完整回答
反对 回复 2023-06-06
  • 2 回答
  • 0 关注
  • 101 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信