簡體   English   中英

時間序列數據中的 ValueError

[英]ValueError in time series data

我有以下代碼:

import fxcmpy
import pandas as pd
from pandas import datetime
from pandas import DataFrame as df
import matplotlib
from pandas_datareader import data as web
import matplotlib.pyplot as plt
import datetime
from datetime import date
import numpy as np
TOKEN = "hidden "
con = fxcmpy.fxcmpy(access_token=TOKEN, log_level='error')
print(con.get_instruments())
symbols = con.get_instruments()
ticker = 'JPYBasket'
start = datetime.datetime(2008,1,1)
end = datetime.datetime.today()
today = date.today()
start1 = datetime.datetime(2019,1,1)
data = con.get_candles(ticker, period='D1', start = start, end = end)
data1 = con.get_candles(ticker, period='D1', start = start1, end = end)
data.index = pd.to_datetime(data.index, format ='%Y-%m-%d')
data1.index = pd.to_datetime(data1.index, format ='%Y-%m-%d')

由於某種原因,我收到以下錯誤:

ValueError: cannot reindex from a duplicate axis

如果我說使用歐元/美元,我不會收到價值錯誤,但只有當我嘗試“EMBasket”、“JPYBasket”時,我才會收到此錯誤!

-- 日元籃子:

data output is :
    bidopen bidclose    bidhigh bidlow  askopen askclose    askhigh asklow  tickqty
date                                    
2019-04-25  9720    9710    9714    9710    9723    9718    9719    9714    2363
2019-04-26  9720    9720    9720    9720    9723    9723    9723    9723    0
2019-04-26  9710    9698    9729    9679    9718    9708    9732    9686    74942
2019-04-29  9698    9679    9701    9661    9708    9683    9708    9664    66167
2019-04-30  9679    9669    9721    9666    9683    9674    9723    9668    72255
... ... ... ... ... ... ... ... ... ...
2019-12-19  9869    9889    9904    9849    9875    9893    9907    9852    75057
2019-12-20  9889    9888    9904    9879    9893    9897    9907    9882    72982
2019-12-23  9888    9896    9911    9880    9897    9901    9914    9883    73520
2019-12-24  9896    9898    9908    9894    9901    9907    9911    9897    64976
2019-12-26  9898    9851    9881    9846    9907    9856    9884    9849    40177
177 rows × 9 columns

data1輸出是:

    bidopen bidclose    bidhigh bidlow  askopen askclose    askhigh asklow  tickqty
date                                    
2019-04-25  9720    9710    9714    9710    9723    9718    9719    9714    2363
2019-04-26  9720    9720    9720    9720    9723    9723    9723    9723    0
2019-04-26  9710    9698    9729    9679    9718    9708    9732    9686    74942
2019-04-29  9698    9679    9701    9661    9708    9683    9708    9664    66167
2019-04-30  9679    9669    9721    9666    9683    9674    9723    9668    72255
... ... ... ... ... ... ... ... ... ...
2019-12-19  9869    9889    9904    9849    9875    9893    9907    9852    75057
2019-12-20  9889    9888    9904    9879    9893    9897    9907    9882    72982
2019-12-23  9888    9896    9911    9880    9897    9901    9914    9883    73520
2019-12-24  9896    9898    9908    9894    9901    9907    9911    9897    64976
2019-12-26  9898    9851    9881    9846    9907    9856    9884    9849    40177
177 rows × 9 columns

您的腳本缺少您對數據矩陣執行的操作。 請更新問題以查看對矩陣執行的操作。

在互聯網上稍微搜索一下ValueError: cannot reindex from a duplicate axis A ValueError: cannot reindex from a duplicate axisBValueError: cannot reindex from a duplicate axis指向操作之前或之后數據集中軸列中重復值的方向。

例如從(B)見下文。

Timestamp                                A      B      C     ...     
2014-11-09 00:00:00                     NaN     1      NaN   NaN      
2014-11-09 00:00:00                      2     NaN     NaN   NaN             
2014-11-09 00:00:00                     NaN    NaN     3     NaN   
2014-11-09 08:24:00                     NaN    NaN     1     NaN         
2014-11-09 08:24:00                     105    NaN     NaN   NaN           
2014-11-09 09:19:00                     NaN    NaN     23    NaN

雖然數據不同的是:

2014-11-09 08:24:00                     NaN    NaN     1     NaN         
2014-11-09 08:24:00                     105    NaN     NaN   NaN

他們的列名在兩種情況下都是2014-11-09 08:24:00 ,這是不允許的。 因此ValueError: cannot reindex from a duplicate axis作為錯誤引發。 當然,這也可能發生在列名中。

具體到您的情況:

行標簽2019-04-26在您的示例數據中至少出現兩次。 您可以做的是擴展標簽或查看標簽在歐元中的外觀。 然后查看將數據轉換為日元時更改行標簽名稱的操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM