如何检查DataFrame中除NaN外的percentage列值是否全部高于2%
实现方案
核心逻辑
你只需要先剔除percentage列的NaN值,再判断所有剩余值是否都大于0.02(即2%)即可,pandas内置的批量操作和聚合方法可以直接实现这个需求,不需要写循环遍历。
代码示例
import pandas as pd # 示例数据构造,你可以替换成你自己的DataFrame读取逻辑 data = { "price": [298.075989, 308.570007, 308.130005], "percentage": [None, 0.035206, -0.001426] } df = pd.DataFrame(data, index=pd.to_datetime(["2021-10-11", "2021-10-18", "2021-10-25"])) df.index.name = "Date" # 核心判断逻辑 is_all_qualified = (df["percentage"].dropna() > 0.02).all() if is_all_qualified: # 替换成你要打印的指定语句即可 print("所有非空percentage值均高于2%,符合要求") else: print("存在低于/等于2%的percentage值,不符合要求")
代码说明
df["percentage"].dropna():过滤掉percentage列的所有NaN值,避免空值干扰判断> 0.02:对每一个非空值做大小比较,返回布尔类型的Series.all():只有所有比较结果都为True时才返回True,只要有一个值小于等于0.02就返回False
你给出的示例数据中存在-0.001426(即-0.14%)的数值,运行代码会触发else分支的打印逻辑。
内容的提问来源于stack exchange,提问作者FafamKurac123
相关产品推荐
相关产品推荐

