[英]for Loop for multiplying a value of each row with a specific column from another table based on condition in Python
我有A表
姓名 | 阶段 | 权 | 产品 | 一个 | 乙 |
---|---|---|---|---|---|
XYD1234 | 产品 | 4643 | A、C、T、Y | 1 | 0 |
FGY4567 | 测试 | 4739 | A, U, p, Y | 0 | 1 |
YUD4568 | QUE | 45632 | 我,Y,O,P | 0 | 1 |
OKE4556 | 堆 | 97474 | A、C、P、Y | 1 | 0 |
表 B:
阶段 | 一个 | 乙 |
---|---|---|
产品 | 10 | 5 |
测试 | 20 | 10 |
QUE | 30 | 15 |
堆 | 49 | 25 |
这就是我想要的 output。
如果每行的阶段与表 B 中的阶段匹配,则将表 A 的 A 列与表 B 的 A 列相乘。
姓名 | 阶段 | 权 | 产品 | 一个 | 乙 | 舞台 | B_STAGE |
---|---|---|---|---|---|---|---|
XYD1234 | 产品 | 4643 | A、C、T、Y | 1 | 0 | 10 | 0 |
FGY4567 | 测试 | 4739 | A, U, p, Y | 0 | 1 | 0 | 10 |
YUD4568 | QUE | 45632 | 我,Y,O,P | 0 | 1 | 0 | 15 |
OKE4556 | 堆 | 97474 | A、C、P、Y | 1 | 0 | 49 | 0 |
如果这是我拥有的代码,但它不能正常工作。
for i in range(0, len(A)):
A.loc['Stage'] == B['Stage']
A['A_Stage'] = A['A'] * B['A']
import pandas as pd
df1 = pd.DataFrame({'NAME':['XYD1234','FGY4567','YUD4568','OKE4556'],
'STAGE':['PROD','TEST','QUE','STACK'],
'Quan':[4643,4739,45632,97474],
'Products':['A, C, T, Y','A, U, p, Y','I, Y, O, P','A, C, P, Y'],
'A':[1, 0, 0, 1],
'B':[0, 1, 1, 0]})
df2 = pd.DataFrame({'STAGE':['PROD','TEST','QUE','STACK'],
'A':[10, 20, 30, 49],
'B':[5, 10, 15, 25]})
df2.columns = ['STAGE', 'A_STAGE', 'B_STAGE']
df1 = df1.merge(df2, on='STAGE')
df1.loc[:,'A_STAGE'] *= df1.loc[:,'A']
df1.loc[:,'B_STAGE'] *= df1.loc[:,'B']
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.