首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用python计算当前行、左3行和右3行的总和

使用python计算当前行、左3行和右3行的总和
EN

Stack Overflow用户
提问于 2019-12-10 09:40:33
回答 1查看 47关注 0票数 0

根据截图示例enter image description here,给定总预测值等,我希望根据逻辑计算净值:因此,首先扣除当前周的值(W0),然后返回3周,然后向前3周,当达到正值时,此计算将停止。

我将示例数据添加到python数据框中:

代码语言:javascript
运行
复制
            import pandas as pd
            import numpy as np

            data = {
                "Material": ["ABC", "ABC", "ABC", "ABC", "ABC", "ABC", "ABC"],
                "Week": [
                    "2019-W50",
                    "2019-W49",
                    "2019-W48",
                    "2019-W47",
                    "2019-W51",
                    "2019-W52",
                    "2020-W1",
                ],
                "Gross Forecast": [50, 40, 40, 40, 50, 50, 50],
                "SO Qty": [-200, 0, 0, 0, 0, 0, 0],
            }

            df = pd.DataFrame(data)
            print(df)

想要的结果是如下所示的数据帧:

代码语言:javascript
运行
复制
                data = {
                "Material": ["ABC"],
                "Week": ["2019-W51"],
                "Net": [20]
                }
EN

Stack Overflow用户

发布于 2019-12-10 10:18:23

代码语言:javascript
运行
复制
df = pd.DataFrame(data).sort_values(by=['Week'])
df['diff'] = df['Gross Forecast'] + df['SO Qty']
df['calc_steps1'] = df['diff'] + df['diff'].shift(1)
df['calc_steps2'] = df['calc_steps1'] + df['diff'].shift(2)
df['calc_steps3'] = df['calc_steps2'] + df['diff'].shift(3)
df['net'] = df['Gross Forecast'] + df['calc_steps3'].shift(1)
票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59259024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档