【发布时间】:2021-04-26 18:43:48
【问题描述】:
我正在寻找并使用条件语句从总价值中分离出应税价值。
如果 Tax_no1 列和 Tax_no2 列的前 2 个字符不同,那么我们必须从 Amount 列 计算 18% 的税百分比并更新 中的值value3 列
值3 = 金额*18/100
如果 Tax_no1 列和 Tax_no2 列的前 2 个字符相同,则我们必须计算 Amount 列 中的 18% 的税百分比除以 2 并更新value1 和 value2 列中的值
value1 = (金额 * 18/100)/2, value1 = (金额 * 18/100)/2
或
value1 = 金额 * 9/100,value2 = 金额 * 9/100
输入数据:
Tax_no1 Tax_No2 Amount value1 value2 value3
AZ0001B AZ0001B 35000
BZ0002A CD0002A 12800.00
25CA895 25CA895 28967.90
NY78615 DY78615 367899.9
LO10985 LO10985 156789
01256NY 02256NY 2890657
预期输出值:
Tax_no1 Tax_No2 Amount value1 value2 value3
AZ0001B AZ0001B 35000 3150 3150 NaN
BZ0002A CD0002A 12800.00 NaN NaN 2304
25CA895 25CA895 28967.90 2607.11 2607.11 NaN
NY78615 DY78615 367899.9 NaN NaN 66221.98
LO10985 LO10985 156789 14111.01 14111.01 NaN
01256NY 02256NY 2890657 NaN NaN 520318.26
我尝试使用的脚本:
df['Tax1'] = df['Tax_no1'].str[:2]
df['Tax2'] = df['Tax_no2'].str[:2]
if df['Tax1'] != df['Tax2']:
df['value3'] = Amount * 18/100
else:
df['value1'] = Amount * 9/100
df['value2'] = Amount * 9/100
【问题讨论】: