美文网首页
01-05 Incomplete data

01-05 Incomplete data

作者: 非常暴龙兽 | 来源:发表于2019-05-13 15:53 被阅读0次
  • 数据不完整
    使用 fillna 函数对不完整的数据进行延展
import numpy as np
import matplotlib.pyplot as plt
import os
import pandas as pd

#----------function to get path of the symbol----------
def symbol_to_path(symbol, base_dir="data")
    #Return CSV file path given ticker symbol.
    return os.path.join(base_dir, "{}.csv".format(str(symbol))

#----------Reads csv----------
def get_data(symbollist, dates):
    df_final = pd.DataFrame(index=dates)
    if "SPY" not in symbollist:
        symbollist.insert(0, "SPY")
    for symbol in symbollist:
        file_path = symbol_to_path(symbol)
        df_temp = pd.read.csv(file_path, 
                  parse_dates = True, 
                  index_col = "Date", 
                  usecols = ['Date', 'Adj Close'],
                  na_values = ['nan'])
        df_temp = df_temp.rename(columns = {'Adj Close':symbol})
        df_final = df_final.dropdata(subset = ['SPY'])
    return df_final

#----------plot function----------
def plot(df_ata):
    ax = df_data.plot(title = "Incomplete Data", frontsize = 2)
    ax.set_xlabel("Date")
    ax.set_ylabel("Price")
    plt.show()


if __name__ == '__main__':
#list of symbols
    #symbollist = ["PSX", "FAKE1", "FAKE2"]
    symbollist = ["FAKE2"}
    #date range
    start_date = '2005-12-31'
    end_date = '2014-12-07'
    #create date range
    idx = pd.date_range(start_date, end_date)
    #get adjusted close of each symbol
    df_data = get_data(symbollist, idx)
    #fill gaps using Forward and Backward fill code
    df_data.fillna(method = "ffill", inplace = "TRUE")
    df_data.fillna(method = "bfill", inplace = "TRUE")

    plot(df_data)

相关文章

网友评论

      本文标题:01-05 Incomplete data

      本文链接:https://www.haomeiwen.com/subject/smxraqtx.html