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() .
IIUC:你想要 'GDP' 值大于最后一个的序数位置,然后小于下一个 .
'GDP'
考虑数据帧 df3
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
shift
g = df3.GDP x = np.arange(len(g))[g.gt(g.shift()) & g.lt(g.shift(-1))] print(x) [ 1 7 13]
你的实际问题的答案是,你无法评估 pd.DataFrame 或 pd.Series 的真相,这正是你试图做的事情 .
pd.DataFrame
pd.Series
if((df3.iloc[i]<df3.iloc[i-1]) & (df3.iloc[i+1]<df3.iloc[i])):
1 回答
IIUC:
你想要
'GDP'
值大于最后一个的序数位置,然后小于下一个 .考虑数据帧
df3
solution
使用
shift
你的实际问题的答案是,你无法评估
pd.DataFrame
或pd.Series
的真相,这正是你试图做的事情 .