如果我想将该表与其他两个表b,c合并,其中表a包含列:( Parent,Style,Ending_Date,WeekNum,Net_Requirment)表,并计算在某个日期制作产品A需要多少钱。
表格应类似于BOM (物料清单)
它能被熊猫应用吗?
表b表示每天对产品A的需求:
Style Date WeekNum Quantity
A 24/11/2019 0 600
A 01/12/2019 1 500表c表示用于制造产品A的详细信息和数量:
Parent Child Q
A A1 2
A1 A11 3
A1 A12 2因此,表a应该像这样填充:
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发布于 2020-03-09 01:46:51
欢迎,为了正确地合并这些表和其他表,您必须有一个用于合并的公共键。您可以像这样将上述键添加到每个表中:
data2 = {'Parent':['A','A1','A1'], 'Child':['A1','A11','A12'],
'Q':[2,3,2], 'Style':['A','A','A']}
df2 = pd.DataFrame(data2) 在此之后,您可以在第一个表上执行左连接,然后同一日期可以有多个行。所以本质上是这样的:
(请注意,如果您执行左连接,您的左表将根据需要创建尽可能多的重复行,以满足右表上的匹配键)
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然后计算:
test['Net_Quantity'] = test.Quantity*test.Q
test.drop(['Q'], axis = 1,inplace=True)结果:
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 1000https://stackoverflow.com/questions/60588229
复制相似问题