【问题标题】:How to make sum of Row which are flitered with specific column values in Pandas?如何计算在 Pandas 中使用特定列值过滤的行的总和?
【发布时间】:2020-05-12 21:42:47
【问题描述】:

我有一个如下所示的数据框。 试图总结第 7 周和第 8 周 所有相关 productCodes[1-317] 的 SalesQuantity 值,并将其第 7 周的行 Sales Quantity 更新为新值。并从 Dataframe 中删除他们的第 8 周行。

周列范围为 [7-26],所有周均包含 [1-317] 产品代码 原始数据的原因在 [Week,ProductCode] 分组之前

 Week  ProductCode  SalesQuantity
  7            1      49.285714
  7            2      36.714286
  7            3      33.285714
  7            4      36.857143
  7            5      42.714286
 ...          ...            ...
  8            3      61.000000
 26          314       4.285714
 26          315       3.571429
 26          316       6.142857
 26          317       3.285714

示例结果:从上表中,为产品代码 3 添加第 7+8 周 SalesQuantities:61.000+33.285714= 94.285.714 为 ProductCode 3 创建第 7 周的新 SalesQuantity 更新值。 之后,需要删除 ProductCode 3 的第 8 周行。

如何为所有 ProductCode[1-317] 自动化?

谢谢

【问题讨论】:

    标签: python pandas filter sum row


    【解决方案1】:

    使用 `groupby()' 方法:

    sumSales = data[['productCode', 'SalesQuality']].groupby('ProductCode').sum()
    

    这将创建一个新的 DataFrame,其中包含 SalesQuality 的总和,并以产品代码为索引。 data[['productCode', 'SalesQuality']] 部分创建原始数据框的子选择,否则周数也会相加。

    【讨论】:

    • 您好,感谢您的回复。我的意思是现在在数据框中的周是这样的 [7,8,11,12,21,22,23,25,26]。我想将其减少 4 个值,例如将 Sales Quantity Week[7+8] 加到 Week[7] 和 Week[11+12] 到 Week[11],Week[21,22,23] 到 Week[21] 最后 Week [25+26] 到第 [25] 周。在最后一个数据框中,我只需要第 7、8、21、25 周更新的行,其他行被删除。是否可能因为我是初学者:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-26
    相关资源
    最近更新 更多