Pandas 分析每周四上證指數的漲跌情況

需求描述:

用U礦做一個上證指數的數據分析,根據漲跌和時間維度來劃分,想看一下歷史上每周四的漲跌情況

實現步驟:

  1. 先去U礦的文檔上找到了獲取上證指數的方法,返回的是一個dataframe

  2. dataframe裡面有很多欄位,找到需要的三個欄位,'secShortName','CHG','tradeDate'對應的是指數名字,漲跌數,交易日期

  3. 取多個列的時候用數據的形式傳參數過去:df[['secShortName','CHG','tradeDate']]

  4. 如果取一列的話直接用key取:df['secShortName']

  5. secShortName這個欄位中包含有其他指數,需要做篩選

  6. 使用isin過濾:df['secShortName'].isin(['上證綜指'])

    Advertisements

  7. 注意isin中的數據的類型,如果是整形則用isin([3]),後面過濾周四的時候用到了

  8. 過濾后name久沒有用了,去掉df[['CHG','tradeDate']]

  9. 把日期轉化為星期幾的索引,使用weekday方法

  10. 把df先轉化為字典:df.to_dict()

  11. 取出日期的數組數據:dictionary['tradeDate'].values()

  12. 給原來的dataframe添加一個weekday的列:df_sub['weekday'] = pd.to_datetime(dictionary['tradeDate'].values()).weekday

  13. 過濾數據,只保留weekday中值為3的數據:df_sub[df_sub['weekday'].isin([3])]

    Advertisements

  14. 生成柱狀圖:five['CHG'].plot(kind='bar')

U礦地址:https://uqer.io/home/

代碼:

import pandas as pd

import matplotlib.pyplot as plt

df=DataAPI.MktIdxdGet(tradeDate=u"",indexID=u"",ticker=u"",beginDate=u"20170101",endDate=u"20171127",exchangeCD=u"XSHG",field=u"",pandas="1")

one = df[['secShortName','CHG','tradeDate']] #過濾掉沒用的列,留下name,漲跌,日期

two = df[df['secShortName'].isin(['上證綜指'])] #過濾掉沒用的行,只留上證指數

three = two[['CHG','tradeDate']]

four = three[['CHG']]

dictionary = three.to_dict()

four['weekday'] = pd.to_datetime(dictionary['tradeDate'].values()).weekday

five = four[four['weekday'].isin([3])]

five['CHG'].plot(kind='bar')

Advertisements

你可能會喜歡