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

如何在pandas dataframe中取前N行及与第N行price列值相等的所有行?

解决方案

你可以先按price列降序排序后,提取第N行的price值作为阈值,再筛选所有price大于等于该阈值的行即可,具体实现如下:

完整实现代码

import pandas as pd

# 构造示例数据
data = {'id': ['A', 'B', 'C', 'D'], 'price': [30, 35, 30, 15]}
car_dataframe = pd.DataFrame(data)

N = 2
# 第一步:按price列降序排序
sorted_df = car_dataframe.sort_values(by=['price'], ascending=False)
# 第二步:取第N行的price作为阈值(pandas索引从0开始,所以取iloc[N-1])
price_threshold = sorted_df['price'].iloc[N-1]
# 第三步:筛选所有price大于等于阈值的行
result = sorted_df[sorted_df['price'] >= price_threshold]

print(result)

运行输出结果

id  price
1  B     35
0  A     30
2  C     30

实现逻辑说明

  • 先排序保证所有行按照price从高到低排列,不会出现高值数据漏选的情况
  • 以第N行的price为阈值筛选,自动包含了所有和第N行price相等的记录,避免直接切片截断同值数据的问题
  • 不需要修改原数据框,兼容性更强

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 22:24:03