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

2024-05-19 19:18:12 发布

您现在位置:Python中文网/ 问答频道 /正文

如果与此组相对应的另一列中有1,我将尝试将一组值中的所有相同值替换为0

这里是一个我想要的输出示例,如果Y列中有1,我希望输入列中由1组成的所有组都是0。 对于速度问题,我不想使用任何交叉每个列值的循环(假设我的列可以有数千个值)

The result I would like

非常感谢


Tags: 示例交叉速度列值
1条回答
网友
1楼 · 发布于 2024-05-19 19:18:12

使用:

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']))

相关问题 更多 >