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

使用Pandas分组检查每组最后两行是否含指定字符串并返回验证结果

Pandas分组检查每组最后两行是否包含指定字符串

原始DataFrame定义

import pandas as pd
import numpy as np

df = pd.DataFrame({'Id':[1,1,1,2,2,2,3,3,3],
                   'LastState':['JAY','JAY','JAY',np.nan,'penu hehe','penu hehe','JAY','penu hehe','POTATO IS A FRUIT']})

解决方案代码

通过groupby结合分组内操作可以实现需求,代码如下:

result = df.groupby('Id')['LastState'].apply(
    lambda x: x.tail(2).eq('POTATO IS A FRUIT').any()
).reset_index(name='LastState')

代码说明

  • 按Id字段分组,针对LastState列执行分组内逻辑
  • x.tail(2):提取每组的最后两行数据
  • eq('POTATO IS A FRUIT'):判断每行值是否匹配目标字符串,生成布尔值序列
  • any():检查布尔序列中是否存在True,即判断该组最后两行是否包含目标字符串
  • reset_index(name='LastState'):将分组索引转为普通列,并将结果列重命名为LastState

执行后得到的result与期望结果完全一致:

Id  LastState
0   1      False
1   2      False
2   3       True

内容的提问来源于stack exchange,提问作者INGl0R1AM0R1

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 03:06:24