我想要删除来自 pandas df
的所有 行
。具体地,当在 Col A
中的 X
下方的 行
为空时。因此,如果在 Col A
中的 X
下面的 行
为空,则我希望删除所有这些 行
,直到值为 X
的下面有一个 字符串
。
import pandas as pd
d = ({
'A' : ['X','','','X','Foo','','X','Fou','','X','Bar'],
'B' : ['Val',1,3,'Val',1,3,'Val',1,3,'Val',1],
'C' : ['Val',2,4,'Val',2,4,'Val',2,4,'Val',2],
})
df = pd.DataFrame(data=d)
输出:
A B C
0 X Val Val
1 1 2
2 3 4
3 X Val Val
4 Foo 1 2
5 3 4
6 X Val Val
7 Fou 1 2
8 3 4
9 X Val Val
10 Bar 1 2
我已经尝试过:
df = df[~(df['A'] == 'X').shift().fillna(False)]
但是这会删除X后面的所有内容。我只想在X下面一行为空时才删除它。
预期结果:
A B C
0 X Val Val
1 Foo 1 2
2 3 4
3 X Val Val
4 Fou 1 2
5 4 4
6 X Val Val
7 Bar 1 2