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

如何根据没有循环的列(数据帧)替换另一列中组的所有相同值?

如何根据没有循环的列(数据帧)替换另一列中组的所有相同值?

一只甜甜圈 2022-08-11 20:15:39
我正在尝试将一组值中的所有相同值替换为0,如果与此组对应的另一列中有一个1。下面是我想要的输出示例,如果 Y 列中有 1,我希望输入列中由 1 组成的所有组都为 0。对于速度问题,我不想使用任何跨每个列值的循环(假设我的列可以有数千个值)。
查看完整描述

1 回答

?
呼唤远方

TA贡献1856条经验 获得超11个赞

用:

df['output']=(df['Y'].ne(1)        
                     .groupby(df['input'].ne(df['input'].shift()).cumsum())
                     .transform('all')
                     .mul(df['input']))

((~df['Y'].eq(1)
          .groupby(df['input'].ne(df['input'].shift()).cumsum())
          .transform('any')).mul(df['input']))


查看完整回答
反对 回复 2022-08-11
  • 1 回答
  • 0 关注
  • 83 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

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

帮助反馈 APP下载

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

公众号

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