分配给熊猫iloc,其中RHS长度比LHS短



我正在尝试对从第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')

相关内容

  • 没有找到相关文章

最新更新