我将这段代码用于if语句:
for col in df2.columns:
a = np.array(df2[col])
p98 = stats.scoreatpercentile(a, 98)
p5 = stats.scoreatpercentile(a, 5)
maxv = df2.max(axis=0)
minv = df2.min(axis=0)
ratiomax = maxv/p98
print(ratiomax)
ratiomin = minv/p5
print(ratiomin)
if (ratiomax <= 1.1).bool() == True:
maxv = maxv
else: maxv = p98
if ratiomin <= 0.2:
minv = minv
else: minv = 95
两种类型的if语句均无效,并引发错误:
ValueError:系列的真值不明确。使用a.empty,a.bool(),a.item(),a.any()或a.all()
先前对此错误给出的解决方案是np.where,并从数据帧中选择选择性值,但我的是关于if语句。
请帮助。
谢谢
有一些奇怪的代码段:
for col in df2.columns:
a = np.array(df2[col])
p98 = stats.scoreatpercentile(a, 98)
p5 = stats.scoreatpercentile(a, 5)
maxv = df2.max(axis=0)
minv = df2.min(axis=0)
ratiomax = maxv/p98
print(ratiomax)
ratiomin = minv/p5
print(ratiomin)
# no need for bool() conversion
# maxv = maxv ... eles is unnecessary
# this is the shorter version of your code:
if not ratiomax <= 1.1:
maxv = p98
# same here
if not ratiomin <= 0.2:
minv = 95
由于缺少df2,np和统计信息的样本值而未经测试