You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何删除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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 18:50:31