首页 文章

我想找到满足上述条件但我正面临这个错误的第一个四分位数

提问于
浏览
-1
x=[ ]

for i,row in enumerate (df3['GDP']):

        if((df3.iloc[i]<df3.iloc[i-1]) & (df3.iloc[i+1]<df3.iloc[i])):
            x.append(i)

print(x)

它显示了这个错误系列的真值是模棱两可的 . 使用a.empty,a.bool(),a.item(),a.any()或a.all() .

Here's a sample of my data

1 回答

  • 0

    IIUC:
    你想要 'GDP' 值大于最后一个的序数位置,然后小于下一个 .

    考虑数据帧 df3

    np.random.seed([3,1415])
    df3 = pd.DataFrame(dict(GDP=np.random.randint(10, size=15)))
    
    print(df3)
    
        GDP
    0     0
    1     2
    2     7
    3     3
    4     8
    5     7
    6     0
    7     6
    8     8
    9     6
    10    0
    11    2
    12    0
    13    4
    14    9
    

    solution
    使用 shift

    g = df3.GDP
    x = np.arange(len(g))[g.gt(g.shift()) & g.lt(g.shift(-1))]
    print(x)
    
    [ 1  7 13]
    

    你的实际问题的答案是,你无法评估 pd.DataFramepd.Series 的真相,这正是你试图做的事情 .

    if((df3.iloc[i]<df3.iloc[i-1]) & (df3.iloc[i+1]<df3.iloc[i])):
    

相关问题