我正在嘗試將一組值中的所有相同值替換為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
提交
取消