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

如何在Pandas中高效获取与数值x近似的指定数量大小行?

解决方案

可以直接通过排序+筛选的方式实现,无需手动设置delta,步骤如下:

  1. 获取小于x的Top5行:筛选出col1值小于x的行,按col1降序排序(让最接近x的行排在前面),取前5行。
  2. 获取大于x的Top5行:筛选出col1值大于x的行,按col1升序排序(让最接近x的行排在前面),取前5行。
  3. 合并结果:将两部分数据合并,得到总计10行的目标结果。

代码实现

import pandas as pd

# 假设df是你的目标DataFrame,x是指定的数值
# 提取小于x且最接近的5行
below_x = df[df["col1"] < x].sort_values("col1", ascending=False).head(5)
# 提取大于x且最接近的5行
above_x = df[df["col1"] > x].sort_values("col1", ascending=True).head(5)
# 合并两部分数据并重置索引
result = pd.concat([below_x, above_x]).reset_index(drop=True)

补充说明

  • 如果存在col1等于x的行,可根据需求调整筛选条件(比如用<=或>=),决定是否将这类行纳入结果。
  • 如果某一类(小于/大于x)的行数不足5行,head(5)会返回该类的全部行,此时合并后的结果行数会少于10行,可根据业务场景补充逻辑(比如从另一类多取对应数量的行,或直接返回现有数据)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 14:54:19