为了账号安全,请及时绑定邮箱和手机立即绑定

熊猫-将行中的值设置为其自身乘以另一个值

熊猫-将行中的值设置为其自身乘以另一个值

jeck猫 2021-05-07 14:43:17
假设我有下表:multiply   total   taxY          500     .1Y          250     .5N          300     .5仅当乘积的值为Y时,我才希望将总计设置为total * tax最终输出:multiply   total   taxY          50      .1Y          125     .5N          300     .5
查看完整描述

3 回答

?
长风秋雁

TA贡献1757条经验 获得超7个赞

用 np.where


df['total'] = np.where(df['multiply'] == 'Y', df['total'] * df['tax'], df['total'])

print(df)


multiply  total  tax

       Y   50.0  0.1

       Y  125.0  0.5

       N  300.0  0.5


查看完整回答
反对 回复 2021-05-18
?
MM们

TA贡献1886条经验 获得超2个赞

在这里,我们哥们

df.loc[df.multiply == 'Y', 'total'] = df.loc[df.multiply == 'Y', 'total'] * df.loc[df.multiply == 'Y', 'tax']



查看完整回答
反对 回复 2021-05-18
?
慕容森

TA贡献1853条经验 获得超18个赞

可以那样做


df.loc[df['multiply'] == 'Y', 'total'] = df.loc[df['multiply'] == 'Y', 'total'] * df.loc[df['multiply'] == 'Y', 'tax']

使用pandas where和assign的另一种方法是:


df.where(df['multiply'] == 'N', df.assign(total = df['total'] * df['tax']))

输出:


    multiply    total   tax

0   Y           50      0.1

1   Y           125     0.5

2   N           300     0.5


查看完整回答
反对 回复 2021-05-18
  • 3 回答
  • 0 关注
  • 132 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号