2017-03-25 64 views
3

我的目標是對財務數據進行時間序列分析。由於我在巴基斯坦證券交易所(PSX)工作,因此雅虎尚未提供數據。當我查看Quantopian的一些教程時,第一步,數據提取是通過雅虎財務完成的。 現在,當我使用PyFolio模塊並在包含數據的csv(Panda's Function)中讀取時,Pandas和PyFolio的日期時間格式存在問題。以下是我正在做的事情的代碼。使用PyFolio和熊貓一起

import pandas as pd 
import numpy as np 
import matplotlib.pyplot as plt 
import pyfolio as pf 
import datetime 
from datetime import datetime 
from datetime import timedelta 

start_date = '2015-02-01' 
end_date = '2017-03-20' 
live_date = '2017-03-15' 
symbols = ['KEL'] 

def converter(start_date): 
    convert=datetime.strptime(start_date, "%Y-%m-%d") 
    return convert 

def data(symbols): 
    dates=pd.date_range(start_date,end_date) 
    df=pd.DataFrame(index=dates) 
    df_temp=pd.read_csv('/home/furqan/Desktop/python_data/{}.csv'.format(str(symbols[0])),usecols=['Date','Close'], 
          parse_dates=True,index_col='Date',na_values=['nan']) 
    df_temp = df_temp.rename(columns={'Close': symbols[0]}) 
    df=df.join(df_temp) 
    df=df.fillna(method='ffill') 
    df=df.fillna(method='bfill') 
    return df 
new_date = converter (live_date) 
df= data(symbols) 
sheet = pf.create_returns_tear_sheet(df, live_start_date=new_date) 

上面的代碼會導致以下錯誤

TypeError: Cannot compare tz-naive and tz-aware timestamps 

鑑於上述信息,我有兩個問題。

1)如果我的PC上有數據,Quantopian可以對我的分析有什麼好處?由於這些數據在雅虎財經上不可用。

2)上面的錯誤究竟意味着什麼?我該如何解決這個錯誤。

以下是PyFolio和Pandas文檔的鏈接。 https://quantopian.github.io/pyfolio/notebooks/single_stock_example/#fetch-the-daily-returns-for-a-stock

http://pandas.pydata.org/pandas-docs/stable/

回答

0

我加入TZ信息到我的系列解決這個問題了。如果您知道日期時間索引的時區,則可以應用以下方法:

df.tz_localize('UTC') 

我希望它有幫助。