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

使用Pandas提取指定列值较大的行中另一列的最小值

没问题,咱们一步步来搞定这个Pandas操作需求~

用Pandas实现「筛选大值行+提取指定列最小值」

我会结合你给出的表格数据来演示具体步骤,确保你能直接套用。

1. 先把数据加载进Pandas

首先得把你的数据变成Pandas能处理的DataFrame。如果你的数据存在文件里(比如CSV),用pd.read_csv就行;要是像你给出的原始数据,也可以手动构造测试:

import pandas as pd

# 手动构造你提供的数据(补全了最后一行的缺失值)
data = [
    [15680, 1518170208, None, 0.003956, 1.0, 0.003956],
    [9819, 1326073214, None, 0.005536, 1.0, 0.005536],
    [12158, 1396892758, 0.002297, 0.008135, 5.0, 0.007002],
    [7294, 1235493859, None, 0.011872, 1.0, 0.011872],
    [10241, 1336302850, None, 0.011971, 1.0, 0.011971],
    [538, 1013948579, None, 0.012109, 1.0, 0.012109],
    [12262, 1407192602, None, 0.014108, 1.0, 0.014108],
    [1729, 1053544775, 0.003417, 0.018708, 3.0, 0.018736],
    [9987, 1326336603, 0.015904, 0.024315, 3.0, 0.018938],
    [5614, 1184677494, 0.001838, 0.0212, None, None]
]
df = pd.DataFrame(data, columns=['prov_code', 'stdev', 'median', 'counts', 'col5', 'average'])

2. 筛选某列数值较大的行

这里分两种最常用的场景,你可以按需选择:

  • 场景1:取该列数值最大的前N行(比如我选counts列最大的前3行)
# 按counts列降序排序,取前3行
top_large_rows = df.sort_values(by='counts', ascending=False).head(3)
  • 场景2:筛选数值大于某个阈值的行(比如筛选counts大于0.015的行)
# 直接用布尔索引筛选
filtered_rows = df[df['counts'] > 0.015]

3. 提取目标列的最小值

注意你的数据里median列有不少NaN值,所以提取最小值的时候要记得跳过这些空值,不然结果会是NaN:

# 从筛选后的行里提取median列的最小值,skipna=True跳过空值
min_target_value = top_large_rows['median'].min(skipna=True)

# 打印结果
print(f"提取到的最小值是:{min_target_value}")

实际运行结果(结合你的数据)

如果用场景1取counts最大的前3行,对应的行是counts为0.024315、0.0212、0.018708的记录,它们的median分别是0.015904、0.001838、0.003417,所以最终提取到的最小值就是0.001838。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:38:52