如何提取DataFrame中Frame平台起止区间行并标记Class类别
解决DataFrame平台区间提取与分类标记问题
核心步骤
- 定位所有
platform start和platform end的行索引 - 配对起止区间,为区间内每行的
Class列标记对应序号(P1、P2…) - 过滤出仅包含区间内的行
示例代码
import pandas as pd # 读取你的数据(替换为实际读取方式) df = pd.read_csv("your_dataset.csv") # 获取起止点索引 start_idx_list = df[df["Type"] == "platform start"].index end_idx_list = df[df["Type"] == "platform end"].index # 初始化Class列 df["Class"] = pd.NA # 遍历配对区间并标记 for seq, (start, end) in enumerate(zip(start_idx_list, end_idx_list), start=1): df.loc[start:end, "Class"] = f"P{seq}" # 提取仅含区间标记的行 filtered_df = df.dropna(subset=["Class"])
注意事项
- 确保
start_idx_list与end_idx_list长度一致,即每个起始点对应一个结束点;若数据存在异常(如起止不配对),需先做校验处理 - 代码中
start:end包含起止行,若不需要包含起止行,可改为start+1:end-1 - 最终
filtered_df即为提取出的目标数据
内容的提问来源于stack exchange,提问作者ukanafun
相关产品推荐
相关产品推荐

