Этот вопрос похож на прикрепленный, но у меня нет никаких значений 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
Вам нужно изменить условие для равномерного, shift
и фильтра инвертированной булевой маской:
dl = df[~(df['B'] == 'Foo').shift().fillna(False)]
print (dl)
A B C
0 X Foo X
2
3 X Foo X