Здравствуйте, у меня есть следующий DataFrame df:
A B C D E F
apple 0 red green blue 8
orange 2 red blue white 10
apple 2 red green blue 8
orange 0 red 20 purple 10
Я хотел бы изменить все ячейки, следующие за определенной ячейкой, на пустые строки.
Я пробовал следующий код, и мне было интересно, есть ли более эффективный способ сделать это.
for i in range(len(df['B']):
if df['B'].iloc[i] == 0:
df['C'].iloc[i] = ""
df['D'].iloc[i] = ""
df['E'].iloc[i] = ""
df['F'].iloc[i] = ""
A B C D E F
apple 0
orange 2 red blue white 10
apple 2 red green blue 8
orange 0
Спасибо
Просто mask
здесь.
df.loc[:, 'C':].mask(df['B'].eq(0), '')
C D E F
0
1 red blue white 10
2 red green blue 8
3
Пытаться:
df.loc[df['B']==0,'C': ] = ''
Отпечатки:
A B C D E F
0 apple 0
1 orange 2 red blue white 10
2 apple 2 red green blue 8
3 orange 0