如何判断DataFrame中Open与Close列浮点数值差值是否在0.200范围内?
解决方案:判断Open与Close的差值是否在±0.200范围内
没问题,我来帮你搞定这个需求~你已经完成了读取CSV的第一步,接下来只需要添加几行代码就能实现判断逻辑了。
核心思路
我们需要检查每行的Close值是否落在Open - 0.200到Open + 0.200之间,等价于判断Open和Close差值的绝对值是否≤0.200。
具体代码实现
首先,确保你已经正确读取了完整的DataFrame(不需要单独提取Close列,我们需要用到Open和Close两列):
import pandas as pd # 读取CSV文件 df = pd.read_csv("CSVFILE.csv")
然后,添加一行代码生成判断结果列:
# 生成布尔列,标记是否满足差值范围条件 df['within_range'] = abs(df['Open'] - df['Close']) <= 0.200
如果你更倾向于明确的范围判断写法,也可以这样写(效果完全一致):
df['within_range'] = (df['Close'] >= df['Open'] - 0.200) & (df['Close'] <= df['Open'] + 0.200)
查看结果
你可以打印前几行数据来验证结果:
# 展示Open、Close和判断结果 print(df[['Open', 'Close', 'within_range']].head())
拿你给出的示例数据来说:
Open: 133.795,Close: 137.275
两者差值的绝对值是137.275 - 133.795 = 3.48,远大于0.200,所以对应的within_range值会是False。
筛选符合条件的行
如果需要单独提取满足条件的记录,可以这样做:
# 筛选出差值在范围内的行 filtered_df = df[df['within_range']] print(filtered_df)
内容的提问来源于stack exchange,提问作者Anthony
相关产品推荐
相关产品推荐

