我的目标是对财务数据进行时间序列分析。由于我在巴基斯坦证券交易所(PSX)工作,因此Yahoo上没有可用数据。当我查看有关Quantopian的一些教程时,第一步是通过Yahoo Finance完成数据提取。
现在,当我使用PyFolio模块并读取包含数据的csv(熊猫函数)时,Pandas和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/

最佳答案

通过将TZ信息添加到我的系列中,我解决了这个问题。如果您知道日期时间索引的时区,则可以应用以下方法:

df.tz_localize('UTC')


希望对您有所帮助。

关于python-3.x - 将PyFolio与Pandas一起使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43021658/

10-12 23:49