我正在尝试将一组值中的所有相同值替换为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']))添加回答
举报
0/150
提交
取消
