【问题标题】:Culmulative Sum in pandas of unindexed data by datePandas 中未索引数据的累积总和(按日期)
【发布时间】:2020-09-13 02:37:54
【问题描述】:

我有一种情况,我试图根据几个标准对大型数据集中的值求和。

我已经设法使用带有另一个脚本的嵌套循环来实现这一点,但希望使用 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

任何帮助将不胜感激。

【问题讨论】:

  • 您是否考虑过按 ["regionNo", "date"] 排序,然后遍历行以计算每个区域的累积总和?

标签: python pandas dataframe cumulative-sum


【解决方案1】:

这种反向引用通常由窗口函数完成。但是,在您的情况下,您依赖于 date 列的值。所以固定窗口不起作用。您可以使用DataFrame.groupby.apply 按“regionNo”分组。请注意,这样做很慢,不建议这样做。但不幸的是,我不知道有任何其他方法可以实现这种“条件聚合”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-12
    • 2014-07-13
    • 2019-02-15
    • 1970-01-01
    相关资源
    最近更新 更多