IndexError:替换索引1超出位置args元组的范围

问题描述

我正在学习一个教程,但我不知道为什么会出现此错误

    <ipython-input-61-d59f7a5a07ab> in extract_featuresets(ticker)
      2     tickers,df = process_data_for_labels(ticker)
      3     df['{}_target'.format(ticker)] = list(map(buy_sell_hold,----> 4                                              df['{}_{}1d'.format(ticker)],5                                              df['{}_{}2d'.format(ticker)],6                                              df['{}_{}3d'.format(ticker)],IndexError: Replacement index 1 out of range for positional args tuple

这是我的代码

tickers,df = process_data_for_labels(ticker)
df['{}_target'.format(ticker)] = list(map(buy_sell_hold,df['{}_{}1d'.format(ticker)],df['{}_{}2d'.format(ticker)],df['{}_{}3d'.format(ticker)],df['{}_{}4d'.format(ticker)],df['{}_{}5d'.format(ticker)],df['{}_{}6d'.format(ticker)],df['{}_{}7d'.format(ticker)],))

以下是该教程的链接https://www.youtube.com/watch?v=zPp80YM2v7k

解决方法

当您仅传递一个format作为参数时,您的格式字符串在ticker中需要两个参数。

如果ticker是两个元素列表或元组,则可以执行以下操作:

df['{}_{}1d'.format(*ticker)]

否则,删除一个大括号:

df['{}_1d'.format(ticker)]
,

如果您希望在 { }

中具有相同的值
df['{ }_{ }1d'.format(*ticker)]

试试这样:

df['{0}_{0}1d'.format(*ticker)]

我解决了与您的问题类似的问题。