zoukankan      html  css  js  c++  java
  • [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.

  • 相关阅读:
    为什么非全站升级HTTPS不可?
    使用JSON实现分页
    Git常用命令
    chrome浏览器tab页内存占用变大,网站变慢为哪般?
    我们前端跟后端是怎么合作的
    关于响应式布局
    AngularJS(1)
    关于php语言的使用!
    你必须收藏的Github技巧
    CSS3 动画
  • 原文地址:https://www.cnblogs.com/Answer1215/p/8053778.html
Copyright © 2011-2022 走看看