我遇到一种情况,我试图根据多个条件对大型数据集中的值求和。
我设法通过另一个脚本的嵌套循环来实现这一目标,但我希望使用Pandas可能更容易。
我的数据集看起来像这样。
date regionNo sales
2020-04-15 1 2
2020-04-14 1 3
2020-04-15 2 3
2020-04-14 2 1
我想添加一列,以指示该区域到该特定日期的累计销售额。
条件将类似于:
salesSum = sum(['sales'] where ['date'] <= "*row date*" and ['region'] == "*row region*")
上述代码的道歉。这是一种python-y伪代码。
问题是我不知道如何在表中引用值。就像excel中的单元格引用一样。
这在大熊猫中有可能吗?
我希望我的数据框看起来像这样:
date regionNo sales salesSum
2020-04-15 1 2 5
2020-04-14 1 3 3
2020-04-15 2 3 4
2020-04-14 2 1 1
任何帮助将不胜感激。
答案 0 :(得分:0)
这种回溯通常由窗口函数完成。但是,根据您的情况,您需要依赖date
列的值。因此,固定的窗口将不起作用。您可以使用DataFrame.groupby.apply
,其中按“ regionNo”分组。请注意,这样做很慢,不建议这样做。但是不幸的是,我不知道实现这种“条件聚合”的任何其他方式。