首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从2个其他表创建新表

从2个其他表创建新表
EN

Stack Overflow用户
提问于 2020-03-08 21:58:28
回答 1查看 26关注 0票数 0

如果我想将该表与其他两个表b,c合并,其中表a包含列:( Parent,Style,Ending_Date,WeekNum,Net_Requirment)表,并计算在某个日期制作产品A需要多少钱。

表格应类似于BOM (物料清单)

它能被熊猫应用吗?

表b表示每天对产品A的需求:

代码语言:javascript
运行
复制
Style  Date        WeekNum Quantity 
A      24/11/2019    0      600
A       01/12/2019    1      500

表c表示用于制造产品A的详细信息和数量:

代码语言:javascript
运行
复制
Parent Child Q 
A       A1    2
A1      A11    3
A1      A12    2

因此,表a应该像这样填充:

代码语言:javascript
运行
复制
Parent  Child  Date        WeekNum  Net_Quantity
A        A1   24/11/2019    0         1200
A1       A11   24/11/2019    0         3600
A1       A12    24/11/2019   0         2400
A        A1     01/12/2019    1         1000
A1       A11    01/12/2019    1         3000
A1       A12     01/12/2019    1         2000
EN

回答 1

Stack Overflow用户

发布于 2020-03-09 01:46:51

欢迎,为了正确地合并这些表和其他表,您必须有一个用于合并的公共键。您可以像这样将上述键添加到每个表中:

代码语言:javascript
运行
复制
data2 = {'Parent':['A','A1','A1'], 'Child':['A1','A11','A12'], 
        'Q':[2,3,2], 'Style':['A','A','A']} 

df2 = pd.DataFrame(data2) 

在此之后,您可以在第一个表上执行左连接,然后同一日期可以有多个行。所以本质上是这样的:

(请注意,如果您执行左连接,您的左表将根据需要创建尽可能多的重复行,以满足右表上的匹配键)

代码语言:javascript
运行
复制
data = {'Style':['A','A'], 'Date':['24/11/2019', '01/12/2019'], 
        'WeekNum':[0,1], 'Quantity':[600,500]} 

df = pd.DataFrame(data) 

mergeDf = df.merge(df2,how='left', left_on='Style', right_on='Style')
mergeDf

然后计算:

代码语言:javascript
运行
复制
test['Net_Quantity'] = test.Quantity*test.Q
test.drop(['Q'], axis = 1,inplace=True)

结果:

代码语言:javascript
运行
复制
    Style   Date    WeekNum Quantity    Parent  Child   Net_Quantity
0   A     24/11/2019    0   600            A    A1      1200
1   A     24/11/2019    0   600            A1   A11     1800
2   A     24/11/2019    0   600            A1   A12     1200
3   A     01/12/2019    1   500            A    A1      1000
4   A     01/12/2019    1   500            A1   A11     1500
5   A     01/12/2019    1   500            A1   A12     1000
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60588229

复制
相关文章

相似问题

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