如何删除DataFrame中最后一行isBuyer=True且prev_isBuyer=False之前的行
筛选DataFrame保留指定条件的最后一行及后续数据
我有如下DataFrame,需要删除**最后一行满足isBuyer == True且prev_isBuyer == False**的行之前的所有数据,只保留该行及之后的内容。补充说明:DataFrame的最后一行isBuyer始终为False。
原始数据
symbol isBuyer prev_isBuyer 0 DOCKUSDT True NaN 1 DOCKUSDT False True 2 DOCKUSDT True False 3 DOCKUSDT False True 4 DOCKUSDT True False 5 DOCKUSDT True True 6 DOCKUSDT True True 7 DOCKUSDT False True 8 DOCKUSDT False False 9 DOCKUSDT False False 10 DOCKUSDT False False 11 DOCKUSDT False False 12 DOCKUSDT False False 13 DOCKUSDT False False 14 DOCKUSDT False False 15 DOCKUSDT False False
期望结果
symbol isBuyer prev_isBuyer 4 DOCKUSDT True False 5 DOCKUSDT True True 6 DOCKUSDT True True 7 DOCKUSDT False True 8 DOCKUSDT False False 9 DOCKUSDT False False 10 DOCKUSDT False False 11 DOCKUSDT False False 12 DOCKUSDT False False 13 DOCKUSDT False False 14 DOCKUSDT False False 15 DOCKUSDT False False
解决方法
思路
先定位所有符合isBuyer == True且prev_isBuyer == False条件的行,取其中最后一行的索引,再从该索引开始截取DataFrame,保留后续所有内容。
代码实现
假设你的DataFrame变量名为df,执行以下代码即可得到目标结果:
# 筛选符合条件的行,提取最后一行的索引 target_index = df[(df['isBuyer'] == True) & (df['prev_isBuyer'] == False)].index[-1] # 从目标索引开始切片,保留后续所有行 result_df = df.loc[target_index:]
这段代码会先筛选出所有满足条件的行,取最后一行的索引(即示例中的4),然后通过loc切片保留从该索引到末尾的所有数据,和期望结果完全一致。
内容的提问来源于stack exchange,提问作者One boy
相关产品推荐
相关产品推荐

