首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >比较第一列中两个数据框中的相同条目,并将其移动/添加到下一列

比较第一列中两个数据框中的相同条目,并将其移动/添加到下一列
EN

Stack Overflow用户
提问于 2020-03-27 23:36:12
回答 1查看 42关注 0票数 1

我有两个不同的下载,所有的机器都在生产中,我想根据可用容量来预测生产量。如果有更多的需求,需求应该推迟到下一个周期,以此类推。如果处理了积压,则只应预测需求。例如,第一台机器在第一个月没有足够的能力,所以从300的需求只能生产250 -->移动50到下个月,下个月的需求是200 + 50,但能力是220,所以预测应该是220,依此类推。

示例需求

代码语言:javascript
复制
df_demand = pd.DataFrame(np.array([[300, 200, 200, 180], [300, 150, 200, 150]]), columns=['April', 'May', 'June', 'July'])

容量示例

代码语言:javascript
复制
df_cap = pd.DataFrame(np.array([[250, 220, 220, 250], [200, 200, 250, 200]]), columns=['April', 'May', 'June', 'July'])

您将如何处理此问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-28 19:10:44

没有蟒蛇

代码语言:javascript
复制
def fun(d, c, r):
    # Given current demand, capacity and residual
    # find the currently meet demand and left over residual
    d = d + r
    if c >= d:
        return d, 0
    else:
        return c, d-c

forecast = []
for index, cap in df_cap.iterrows(): 
    if index not in df_demand.index:
        continue
    demand = df_demand.loc[index]
    forecast.append([])
    r = 0
    for i, c in enumerate(cap):
        d = demand[i]
        f, r = fun(d,c,r)
        forecast[-1].append(f)

print (pd.DataFrame(forecast, columns=df_cap.columns))

输出

代码语言:javascript
复制
   April  May  June  July
0    250  220   220   190
1    200  200   250   150
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60889240

复制
相关文章

相似问题

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