簡體   English   中英

for 循環,用於根據 Python 中的條件將每一行的值與另一個表中的特定列相乘

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM