pandas isna-值错误:序列的真值不明确,请使用.empty、.bool()、.item()、.any()或.all()[duplicate]

0mkxixxg  于 2023-02-07  发布在  其他
关注(0)|答案(1)|浏览(145)
    • 此问题在此处已有答案**:

(13个答案)
4天前关闭。
大家好,我有这段代码,在我的 Dataframe 中,我有一些NaN值,我想将用于条件,如您所见

if df['stoch_slowk'].isna():
    df['action']='attendre'
if df['stoch_slowk'] < 20:
    df['action'] ='Vendre'
elif df['stoch_slowk'] > 80:
    df['action'] ='Acheter'
elif df['stoch_slowk'] > 20 and df['stoch_slowk'] < 80:
    if df['stoch_slowd'] > 20:
        df['action'] ='Acheter'
    elif df['stoch_slowd'] < 80:
        df['action'] ='Vendre'
else:
    df['action'] ='Attendre'

如果你能帮我,谢谢
我有这个错误:值错误:Series的真值不明确。请使用. empty、. bool()、. item()、. any()或. all()。

nx7onnlm

nx7onnlm1#

df['stoch_slowk'].isna()返回每行为True或False的系列。您可以使用any()all()将系列减少为单个TrueFalse值:

df['stoch_slowk'].isna().any() # True if any of the values in 'stoch_slowk' is NaN

如果要更改具有NaN值的行的值,可以使用以下命令:

na_mask = df['stoch_slowk'].isna()
df['action'][na_mask] = 'attendre'

相关问题