有什么更好的方法(如果有的话)来定义一个函数来检查 pandas 列是否在给定的整数范围内?我在 Pandas 数据框中有一列,我想检查这些值是否在设定范围之间。为此,我选择创建一个函数,该函数接受数据框作为参数,并使用 IF 和 ELIF 测试列是否在范围内。这在范围很小的情况下可能没问题,但是如果范围很大,则生成的 IF、ELIF 函数可能难以维护。有没有更好的方法来实现这一目标?我的代码有效-def fn(dframe): if dframe['A'] < 125: return 935 + 0.2 * dframe['A'] elif (dframe['A'] >= 955) and (dframe['A'] <= 974): return 921.2 + 0.2 * (dframe['A'] - 955) elif (dframe['A'] >= 975) and (dframe['A'] <= 1023): return 925.2 + 0.2 * (dframe['BCCH'] - 975) elif (dframe['A'] >= 511) and (dframe['A'] <= 885): return 1805.2 + 0.2 * (dframe['A'] - 512)此代码按预期工作,但是如果范围很大,则生成的函数将难以管理。
2 回答
慕妹3242003
TA贡献1824条经验 获得超6个赞
看来你需要 np.where
import numpy as np
np.where(dframe['A'] < 125, 935 + 0.2 * dframe['A'],
np.where(dframe['A'] >= 511) & (dframe['A'] <= 885), 1805.2 + 0.2 * (dframe['A'] - 512,
np.where(dframe['A'] <= 974, 921.2 + 0.2 * (dframe['A'] - 955),
np.where(dframe['A'] <= 1023, 925.2 + 0.2 * (dframe['A'] - 975),
'Value for any other value'))))
添加回答
举报
0/150
提交
取消