如何在 Python 中逐行计算数据框的小计?

Posted

技术标签:

【中文标题】如何在 Python 中逐行计算数据框的小计?【英文标题】:How to calculate subtotals, line by line of a Data Frame in Python? 【发布时间】:2020-06-06 23:32:46 【问题描述】:

我有以下 DF:

import pandas as pd
df = pd.DataFrame([['2020/01/01','A',5],['2020/01/10','B',-2],['2020/01/15','C',3],['2020/01/18','B',9]],columns=['datetime','broker','amount'])  

我需要逐行计算新列中“金额”列的小计... 我已经尝试过以下代码:

df['Subtotal amount'] = df.sum(axis=1, numeric_only=True)

返回以下结果:

     datetime broker  amount  Subtotal amount
0  2020/01/01      A       5                5
1  2020/01/10      B      -2               -2
2  2020/01/15      C       3                3
3  2020/01/18      B       9                9

但我希望结果是逐行计算,加减前几行的值:

     datetime broker  amount  Subtotal amount
0  2020/01/01      A       5                5
1  2020/01/10      B      -2                3
2  2020/01/15      C       3                6
3  2020/01/18      B       9               15

【问题讨论】:

df['Subtotal amount'] = df.amount.cumsum() ? 是的@AndrejKesely,谢谢! 【参考方案1】:

正如 Andrej Kesely 在 cmets 中所说,您正在尝试进行累积求和。 cumsum 是您所追求的 numpy 函数。这应该可以解决问题。

df['Subtotal amount'] = df.amount.cumsum()

感谢 Andrej,我只是将其移至答案

【讨论】:

也谢谢你@J.Warren

以上是关于如何在 Python 中逐行计算数据框的小计?的主要内容,如果未能解决你的问题,请参考以下文章

我应该如何在 Python 中逐行读取文件?

如何使用python在字符串html中逐行添加“\ n”?

在 Python 中逐行写入管道的正确方法

如何在 ASP.NET Core 3.1 中逐行迭代列表

如何在目标c中逐行解析JSON文件

如何禁用 .onDelete- 或如何在列表中逐行使用 .deleteDisabled?