![](/img/trans.png)
[英]Pandas: Iterating over rows, Adding and Subtracting Dates, Appending those dates to a new column depending on row value
[英]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.