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

如何在Pandas中筛选特定条件行并包含其前N行基线数据?

解决方案

步骤1:加载数据并筛选目标行

先确保已正确加载CSV数据,再筛选出concentration > 10的行(优化你原有的代码):

import pandas as pd

# 加载CSV文件
dF1 = pd.read_csv("your_file.csv")

# 筛选符合条件的行,保留指定列
target_rows = dF1[dF1["concentration"] > 10][["duration", "measurement", "concentration"]]

步骤2:提取指定数量的基线数据(concentration=0)

根据不同需求,有几种常见提取方式:

  • 取前100行基线数据:如果基线是按时间/采集顺序排列的,直接取前100行
baseline_rows = dF1[dF1["concentration"] == 0][["duration", "measurement", "concentration"]].head(100)
  • 随机抽取100行基线数据:不需要固定顺序时,随机选100行(random_state保证结果可复现)
baseline_rows = dF1[dF1["concentration"] == 0][["duration", "measurement", "concentration"]].sample(n=100, random_state=42)
  • 按时间排序后取前100行:需要按duration顺序的基线时,先排序再提取
baseline_rows = dF1[dF1["concentration"] == 0][["duration", "measurement", "concentration"]].sort_values("duration").head(100)

步骤3:合并基线与目标数据

用pd.concat按顺序合并,基线在前、目标行在后:

# 合并后重置索引,避免索引重复
dF2 = pd.concat([baseline_rows, target_rows], ignore_index=True)

验证结果

可以打印前后部分数据确认:

print("前10行基线数据:")
print(dF2.head(10))
print("\n后10行目标数据:")
print(dF2.tail(10))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 04:40:45