• [Python] Normalize the data with Pandas


    import os
    import pandas as pd
    import matplotlib.pyplot as plt
    
    def test_run():
        start_date='2017-01-01'
        end_data='2017-12-15'
        dates=pd.date_range(start_date, end_data)
    
        # Create an empty data frame
        df=pd.DataFrame(index=dates)
    
        symbols=['SPY', 'AAPL', 'IBM', 'GOOG', 'GLD']
        for symbol in symbols:
            temp=getAdjCloseForSymbol(symbol)
            df=df.join(temp, how='inner')
    
        return df   
    
    
    def normalize_data(df):
        """ Normalize stock prices using the first row of the dataframe """
        df=df/df.ix[0, :]
        return df
    
    
    def getAdjCloseForSymbol(symbol): 
        # Load csv file
        temp=pd.read_csv("data/{0}.csv".format(symbol), 
            index_col="Date", 
            parse_dates=True,
            usecols=['Date', 'Adj Close'],
            na_values=['nan'])
        # rename the column
        temp=temp.rename(columns={'Adj Close': symbol})
        return temp
    
    def plot_data(df, title="Stock prices"):
        ax=df.plot(title=title, fontsize=10)
        ax.set_xlabel("Date")
        ax.set_ylabel("Price")
        plt.show()
    
    
    if __name__ == '__main__':
        df=test_run()
        # data=data.ix['2017-12-01':'2017-12-15', ['IBM', 'GOOG']]    
        df=normalize_data(df)
        plot_data(df)
        """
                           IBM         GOOG
        2017-12-01  154.759995  1010.169983
        2017-12-04  156.460007   998.679993
        2017-12-05  155.350006  1005.150024
        2017-12-06  154.100006  1018.380005
        2017-12-07  153.570007  1030.930054
        2017-12-08  154.809998  1037.050049
        2017-12-11  155.410004  1041.099976
        2017-12-12  156.740005  1040.479980
        2017-12-13  153.910004  1040.609985
        2017-12-15  152.500000  1064.189941
        """

    It is easy to compare the data by normalize it.

  • 相关阅读:
    ASP.NET MVC Controller向View传值的几种方式
    ASP.NET MVC View向Controller提交数据
    ASP.NET MVC 让@Html.DropDownList显示默认值
    Sublime Cssrem rem自动转换
    Sublime install package插件安装
    HTML+CSS 清除浮动三种方式
    Sublime View In Browser
    Sublime html <head>自动补全
    Ubuntu编译源码为deb
    Pycharm安装激活
  • 原文地址:https://www.cnblogs.com/Answer1215/p/8053778.html
Copyright © 2020-2023  润新知