我正在尝试对从第20行开始的数据帧执行np.where
函数。我输入的代码如下:
df['buy'] = np.where((df.iloc[20:,]['signal']==1), 'buy','no buy')
它显示了以下错误:ValueError:值的长度(226(与索引的长度(246(不匹配
有人知道怎么修吗?
我希望熊猫从第20行开始返回值。
这是一个赋值错误,df
有246个条目,但您正试图为其赋值226个值的numpy向量。
你打算结果应该是什么?
你可以对数据帧进行子集设置吗?
df_sub = df.iloc[20:].copy()
df_sub['buy']=np.where((df_sub.iloc['signal']==1), 'buy','no buy')
IIUC,您可以使用;混合的";任务索引:
n = df.columns.get_loc('buy')
df.iloc[20:, n] = np.where((df.iloc[20:,]['signal']==1), 'buy','no buy')