Pandas 从其他两个表创建一个新表
如果我想将该表与其他两个表b、c合并 其中表a包含以下列:(父项、样式、结束日期、周数、净需求) 表格和计算在特定日期生产产品所需的费用 该表应与BOM表(物料清单)相似 熊猫可以使用吗 表b表示每个日期对产品A的需求:Pandas 从其他两个表创建一个新表,pandas,Pandas,如果我想将该表与其他两个表b、c合并 其中表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
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
data2 = {'Parent':['A','A1','A1'], 'Child':['A1','A11','A12'],
'Q':[2,3,2], 'Style':['A','A','A']}
df2 = pd.DataFrame(data2)
欢迎使用,为了正确合并这些表和其他表,您必须有一个公共键来合并。您可以将所述键添加到每个表中,如下所示:
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
data2 = {'Parent':['A','A1','A1'], 'Child':['A1','A11','A12'],
'Q':[2,3,2], 'Style':['A','A','A']}
df2 = pd.DataFrame(data2)
在此之后,您可以对第一个表执行左联接,然后可以为同一日期创建多行。所以本质上是这样的:
(注意,如果执行左联接,左表将根据需要创建尽可能多的重复行,以满足右表上匹配键的需要)
然后计算:
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 1000
如果我理解正确,您希望合并两个数据帧:合并它们后,可以像往常一样轻松地计算净数量。您能给我们一些迄今为止您所做的代码吗?