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

Pandas浮点型温度数据筛选:提取符合数值条件的行

解决浮点数温度数据的行筛选问题

嗨,我来帮你搞定这个困扰你的问题!你之前尝试用range()配合isin()的思路确实不适合处理浮点数——毕竟range()只能生成整数序列,完全没法覆盖你需要的小数区间场景。其实用pandas的布尔索引就能轻松实现你的需求,步骤超简单:

步骤1:确保列数据是数值类型

首先得保证你的两列数据是浮点/数值类型,避免后续筛选出错。如果之前的astype(float)没问题最好,要是怕有非数值的脏数据,推荐用pd.to_numeric()更稳妥,它能把无法转换的值变成NaN(后续可以根据情况处理这些NaN):

import pandas as pd

# 假设你的数据存在DataFrame里,名为df
df['rowA'] = pd.to_numeric(df['rowA'], errors='coerce')
df['rowB'] = pd.to_numeric(df['rowB'], errors='coerce')

步骤2:用布尔条件直接筛选行

不需要复杂的range或isin,直接写出你的两个筛选条件,用&连接(注意每个条件要加括号,避免运算符优先级坑):

# 筛选rowA>35 且 rowB<50的行
filtered_rows = df[(df['rowA'] > 35) & (df['rowB'] < 50)]

举个完整的例子

给你写个可运行的示例,方便你对照:

import pandas as pd

# 模拟你的温度数据
temp_data = {
    'rowA': [34.67777, 36.2345, 37.8901, 33.1234],
    'rowB': [56.53637, 48.7654, 51.2345, 45.6789]
}
df = pd.DataFrame(temp_data)

# 确保数据类型正确
df['rowA'] = pd.to_numeric(df['rowA'], errors='coerce')
df['rowB'] = pd.to_numeric(df['rowB'], errors='coerce')

# 执行筛选
result = df[(df['rowA'] > 35) & (df['rowB'] < 50)]
print(result)

运行后会得到唯一符合条件的行:

rowA    rowB
1  36.2345  48.7654

简单说,这类“大于/小于某个阈值”的连续范围筛选,布尔索引就是最直接高效的方式,完全不用绕弯子用range~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:47:12