Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python ValueError:值(1)的长度与索引(12797)的长度不匹配-索引的长度相同_Python_Pandas_Dataframe - Fatal编程技术网

Python ValueError:值(1)的长度与索引(12797)的长度不匹配-索引的长度相同

Python ValueError:值(1)的长度与索引(12797)的长度不匹配-索引的长度相同,python,pandas,dataframe,Python,Pandas,Dataframe,这让我快发疯了,因为我真的不明白问题所在 我有以下代码: dataframe.to_csv(f“user_data/candle_data.csv”) 打印(数据帧) st12=自超趋势(数据帧,3,12) st12['ST']至csv(f“用户数据/st12.csv”) 打印(st12) 打印(dataframe.index.difference(st12.index)) dataframe.loc[:,'st_12']=st12['st'], 检查csv文件,我可以看到第一个索引是0,最后

这让我快发疯了,因为我真的不明白问题所在

我有以下代码:

dataframe.to_csv(f“user_data/candle_data.csv”)
打印(数据帧)
st12=自超趋势(数据帧,3,12)
st12['ST']至csv(f“用户数据/st12.csv”)
打印(st12)
打印(dataframe.index.difference(st12.index))
dataframe.loc[:,'st_12']=st12['st'],
检查
csv
文件,我可以看到第一个索引是
0
,最后一个索引是
12796
。最后一行也是行号
12798
。这两个文件都是如此

三个
print
的输出如下

                           date     open     high      low    close       volume
0     2020-12-29 21:45:00+00:00   723.33   726.14   723.26   725.05   3540.48612
1     2020-12-29 22:00:00+00:00   725.17   728.77   723.78   726.94   3983.90892
2     2020-12-29 22:15:00+00:00   726.94   727.30   724.72   724.75   3166.57435
3     2020-12-29 22:30:00+00:00   724.94   725.99   723.80   725.91   2848.08122
4     2020-12-29 22:45:00+00:00   725.99   730.30   725.95   729.64   6288.69499
...                         ...      ...      ...      ...      ...          ...
12792 2021-05-12 03:45:00+00:00  4292.42  4351.85  4292.35  4332.81  24410.30155
12793 2021-05-12 04:00:00+00:00  4332.12  4347.60  4300.07  4343.05  16545.66776
12794 2021-05-12 04:15:00+00:00  4342.84  4348.00  4305.87  4313.82  10048.32828
12795 2021-05-12 04:30:00+00:00  4313.82  4320.68  4273.35  4287.49  13201.88547
12796 2021-05-12 04:45:00+00:00  4287.49  4306.79  4276.87  4300.80   9663.73327

[12797 rows x 6 columns]
                ST  STX
0         0.000000  nan
1         0.000000  nan
2         0.000000  nan
3         0.000000  nan
4         0.000000  nan
...            ...  ...
12792  4217.075684   up
12793  4217.075684   up
12794  4217.260609   up
12795  4217.260609   up
12796  4217.260609   up

[12797 rows x 2 columns]
RangeIndex(start=0, stop=0, step=1)
完全错误回溯:

Traceback (most recent call last):
  File "/freqtrade/freqtrade/main.py", line 37, in main
    return_code = args['func'](args)
  File "/freqtrade/freqtrade/commands/optimize_commands.py", line 53, in start_backtesting
    backtesting.start()
  File "/freqtrade/freqtrade/optimize/backtesting.py", line 479, in start
    min_date, max_date = self.backtest_one_strategy(strat, data, timerange)
  File "/freqtrade/freqtrade/optimize/backtesting.py", line 437, in backtest_one_strategy
    preprocessed = self.strategy.ohlcvdata_to_dataframe(data)
  File "/freqtrade/freqtrade/strategy/interface.py", line 670, in ohlcvdata_to_dataframe
    return {pair: self.advise_indicators(pair_data.copy(), {'pair': pair})
  File "/freqtrade/freqtrade/strategy/interface.py", line 670, in <dictcomp>
    return {pair: self.advise_indicators(pair_data.copy(), {'pair': pair})
  File "/freqtrade/freqtrade/strategy/interface.py", line 687, in advise_indicators
    return self.populate_indicators(dataframe, metadata)
  File "/freqtrade/user_data/strategies/TrippleSuperTrendStrategy.py", line 94, in populate_indicators
    dataframe.loc[:, 'st_12'] = st12['ST'],
  File "/home/ftuser/.local/lib/python3.9/site-packages/pandas/core/indexing.py", line 692, in __setitem__
    iloc._setitem_with_indexer(indexer, value, self.name)
  File "/home/ftuser/.local/lib/python3.9/site-packages/pandas/core/indexing.py", line 1597, in _setitem_with_indexer
    self.obj[key] = value
  File "/home/ftuser/.local/lib/python3.9/site-packages/pandas/core/frame.py", line 3163, in __setitem__
    self._set_item(key, value)
  File "/home/ftuser/.local/lib/python3.9/site-packages/pandas/core/frame.py", line 3242, in _set_item
    value = self._sanitize_column(key, value)
  File "/home/ftuser/.local/lib/python3.9/site-packages/pandas/core/frame.py", line 3899, in _sanitize_column
    value = sanitize_index(value, self.index)
  File "/home/ftuser/.local/lib/python3.9/site-packages/pandas/core/internals/construction.py", line 751, in sanitize_index
    raise ValueError(
ValueError: Length of values (1) does not match length of index (12797)
ERROR: 1
回溯(最近一次呼叫最后一次):
文件“/freqtrade/freqtrade/main.py”,第37行,在main中
return_code=args['func'](args)
文件“/freqtrade/freqtrade/commands/optimize_commands.py”,第53行,在start_backtesting中
backtesting.start()
文件“/freqtrade/freqtrade/optimize/backtesting.py”,第479行,开始
最小日期、最大日期=自回测策略(战略、数据、时间范围)
文件“/freqtrade/freqtrade/optimize/backtesting.py”,第437行,在backtest\u one\u策略中
预处理=self.strategy.ohlcvdata_to_数据帧(数据)
文件“/freqtrade/freqtrade/strategy/interface.py”,第670行,在ohlcvdata_to_数据框中
返回{pair:self.advision_指示符(pair_data.copy(),{'pair':pair})
文件“/freqtrade/freqtrade/strategy/interface.py”,第670行,在
返回{pair:self.advision_指示符(pair_data.copy(),{'pair':pair})
文件“/freqtrade/freqtrade/strategy/interface.py”,第687行,建议指标
返回self.populate\u指示符(数据帧、元数据)
文件“/freqtrade/user\u data/strategies/TrippleSuperTrendStrategy.py”,第94行,在填充\u指标中
dataframe.loc[:,'st_12']=st12['st'],
文件“/home/ftuser/.local/lib/python3.9/site packages/pandas/core/index.py”,第692行,在__
iloc.\u setitem\u和索引器(索引器、值、self.name)
文件“/home/ftuser/.local/lib/python3.9/site packages/pandas/core/index.py”,第1597行,在带有索引器的setitem中
self.obj[key]=值
文件“/home/ftuser/.local/lib/python3.9/site packages/pandas/core/frame.py”,第3163行,在__
自我设置项目(键、值)
文件“/home/ftuser/.local/lib/python3.9/site packages/pandas/core/frame.py”,第3242行,在集合项中
value=self.\u清理\u列(键,值)
文件“/home/ftuser/.local/lib/python3.9/site packages/pandas/core/frame.py”,第3899行,在_sanitize_列中
值=清理索引(值,self.index)
文件“/home/ftuser/.local/lib/python3.9/site packages/pandas/core/internals/construction.py”,第751行,在sanitize_索引中
升值误差(
ValueError:值的长度(1)与索引的长度(12797)不匹配
错误:1
因此,如果两个数据帧的行数完全相同且索引完全相同,为什么会出现此错误?

有一个输入错误:

dataframe.loc[:, 'st_12'] = st12['ST']

逗号是一个输入错误。

您从哪里得到错误?发布回溯,以便我们可以看到失败的地方。@t我已按要求添加了回溯。可能是……st12['ST'],需要是st12['ST']?逗号是一个输入错误?哇,我是个白痴。如果你想把它作为答案提交,那么我可以接受它,然后你可以添加到你的甜蜜的互联网点数集合中。