我有一个这样的表:
<表类>
事件价值
tbody><<tr>种子 57 ghy 869 回购 5324 回购 空 回购 空 反式 32 哈里 12 weig 6995 回购 45 回购 空 表类>
我想你可以这样做(MWE):
import pandas as pd
from io import StringIO
my_file = '''event value
seed 57
ghy 869
repo 5324
repo null
repo null
trans 32
harv 12
weig 6995'''
df = pd.read_csv(StringIO(my_file), sep='t')
df = df.drop(df.set_index('event')
.loc['seed':'trans'].reset_index()
.query('(event == "repo")&(value == value)').index)
假设你的DataFrame是df
,那么:
mask = df.values.notnull() & (df.event == 'repo') # notnull 'repo' values
mask[-2] = False # to not drop the last two rows
df_result = df[~mask] # keep the rows that does not match the conditions
我不确定,因为我没有你的数据,但这个想法是使用布尔数组(mask
)来过滤行(不)想要的。