Удалить строку под определенным значением панды

1

Этот вопрос похож на прикрепленный, но у меня нет никаких значений np.nan. Как удалить строку на основе строки выше? Python Pandas

По сути, я просто пытаюсь delete row после определенного значения. Для df ниже я хочу удалить row после 'Foo'

import pandas as pd
import numpy as np

d = ({
    'A' : ['X','Y','','X','Y'],           
    'B' : ['Foo',np.nan,'','Foo',np.nan],
    'C' : ['X','Y','','X','Y'],
    })

Можете ли вы просто сдвинуть следующие +1?

dl = df.loc[df['B'] != 'Foo']

Мой целевой результат:

   A    B  C
0  X  Foo  X
1           
2  X  Foo  X
Теги:
pandas

1 ответ

2
Лучший ответ

Вам нужно изменить условие для равномерного, shift и фильтра инвертированной булевой маской:

dl = df[~(df['B'] == 'Foo').shift().fillna(False)]
print (dl)
   A    B  C
0  X  Foo  X
2           
3  X  Foo  X

Ещё вопросы

Сообщество Overcoder
Наверх
Меню