Pandas按条件提取行:提取首个F标签出现前所有标签为T的行
实现方法
核心思路是先定位TRUE/FALSE列第一个值为F的行的位置,直接截取从开头到该位置之前的所有行即可。
完整示例代码
import pandas as pd # 构造示例DataFrame data = { "value": [1,2,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4], "TRUE/FALSE": ["T","T","T","T","T","T","T","F","F","F","F","F","F","F","T","T","T","T","F","T","F"] } df = pd.DataFrame(data) # 筛选出TRUE/FALSE列为F的布尔序列 f_mask = df["TRUE/FALSE"] == "F" # 判断是否存在F,避免无F场景报错 if f_mask.any(): # 取第一个F对应的索引 first_f_index = f_mask.idxmax() # 切片取该索引之前的所有行 result = df.iloc[:first_f_index] else: # 无F时可根据实际需求调整返回值,此处默认返回全量数据 result = df print(result)
输出结果
运行上述代码即可得到预期输出:
value TRUE/FALSE 0 1 T 1 2 T 2 3 T 3 4 T 4 4 T 5 4 T 6 4 T
内容的提问来源于stack exchange,提问作者Jayashree Sridhar
相关产品推荐
相关产品推荐

