-2

我正在尝试将“是”或“否”结果保存到此处命名为异常值的列表中。

这是我的代码

d = {'col1': [1, 2, 3, 4, 5], 'Spread': [10, 10.8, 5.0, 4.9,12.3]}
df = pd.DataFrame(d)
upper_limit = 9

rows = df.index.tolist()
outlier = []
for i in rows:
    if df.Spread[i]>upper_limit:
        result = print('yes') in outlier
    else:
        result = print('no') in outlier
         

我的输出是这样的

yes
yes
no
no
yes

在这个循环之后,如果我打印异常值,它只会返回一个空列表。在这个阶段我做错了什么?如何在列表中保存“是”或“否”结果?

提前致谢!

更新!

4

1 回答 1

0

print()用于在屏幕上显示文本 - 不是将值返回给变量。
但经常displaying on screen被称为"returning data"可能会产生误导。

你只需要result = "yes"result = "no"
你需要更小的缩进outlier.append(result)

outlier = []

for i in rows:

    # if/else
    if df.Spread[i] > upper_limit:
        result = 'yes'
    else:
        result = 'no'

    # after if/else
    outlier.append(result)   

或者你可以直接添加

outlier = []

for i in rows:

    # if/else
    if df.Spread[i] > upper_limit:
        outlier.append('yes')   
    else:
        outlier.append('no')   

    # after if/else
    # ... nothing ...
    
于 2021-04-14T00:01:17.170 回答