天天看點

tushare的使用

TuShare 官方定位是一個财經資料接口包,官網位址為:TuShare。

可以用pip直接安裝:

pip install tushare
           

由于裡面對pandas等安裝包的依賴,最好是在Anaconda環境下進行安裝,不然還要裝很多額外的依賴包,而Anaconda已經打包安裝好了,相信我,Anaconda用起來會讓你愛不釋手。

具體的使用技巧詳見官網:

tushare的使用
tushare的使用
tushare的使用

可以根據需要對自己感興趣的一塊看一下,當然可以通過如下代碼對裡面的大緻屬性和使用無參數的方法進行檢視:

from IPython.core.interactiveshell import InteractiveShell#在jupyter notebook使用,可以使輸出看起來比較漂亮
import tushare as ts

InteractiveShell.ast_node_interactivity = 'all' #設定為漂亮的輸出樣式

for attr in dir(ts):
    try:
        if hasattr(getattr(ts, attr), '__call__'):
            try:
                getattr(ts, attr)()
            except:
                pass
        else:
            getattr(ts, attr)
    except:
        pass
           

輸出大概是這個樣子的:

tushare的使用
tushare的使用

當然這些資料目前我隻對新上映的電影和電影排名比較感興趣,是以主要是為了用着一塊,

用到的就是這些代碼接口:

import tushare as ts

ts.realtime_boxoffice()

ts.day_boxoffice()

ts.day_boxoffice('2017-05-01')

ts.day_cinema()

ts.month_boxoffice()
           
tushare的使用

挺不錯的。

# 根據doc對列名進行替換
In []: import tushare as ts
    ...: import pandas as pd
    ...: pd.set_option('display.width', )
    ...: 

In []: movies_info = ts.day_boxoffice()

In []: movies_info
Out[]: 
  AvgPrice AvpPeoPle BoxOffice BoxOffice_Up IRank MovieDay  MovieName SumBoxOffice WomIndex
                                -                厲害了,我的國                 
                                 -               古墓麗影:源起之戰                 
                                 -                   紅海行動                
                                 -                     黑豹                 
                                 -                    水形物語                  
                                  -                 唐人街探案                
                                  -               小蘿莉的猴神大叔                 
                                  -                  三塊廣告牌                  
                                  -                    比得兔                 
                                  -                大壞狐狸的故事                  

In []: movies_doc = ts.day_boxoffice.__doc__

In []: movies_doc
Out[]: '\n    擷取單日電影票房資料\n    資料來源:EBOT藝恩票房智庫\n    Parameters\n    ------\n        date:日期,預設為上一日\n        retry_count : int, 預設 3\n                  如遇網絡等問題重複執行的次數\n        pause : int, 預設 0\n                 重複請求資料過程中暫停的秒數,防止請求間隔時間太短出現的問題\n     return\n     -------\n        DataFrame \n              AvgPrice      平均票價\n              AvpPeoPle     場均人次\n              BoxOffice     單日票房(萬)\n              BoxOffice_Up  環比變化 (%)\n              IRank         排名\n              MovieDay      上映天數\n              MovieName     影片名 \n              SumBoxOffice  累計票房(萬) \n              WomIndex      口碑指數 \n    '

In []: from itertools import dropwhile

In []: movies_doc = list(dropwhile(lambda x: 'DataFrame' not in x, movies_doc.split(' ')))

In []: movies_doc = list(filter(lambda x:  x.strip(), movies_doc))

In []: movies_doc
Out[]: 
['DataFrame',
 'AvgPrice',
 '平均票價\n',
 'AvpPeoPle',
 '場均人次\n',
 'BoxOffice',
 '單日票房(萬)\n',
 'BoxOffice_Up',
 '環比變化',
 '(%)\n',
 'IRank',
 '排名\n',
 'MovieDay',
 '上映天數\n',
 'MovieName',
 '影片名',
 'SumBoxOffice',
 '累計票房(萬)',
 'WomIndex',
 '口碑指數']

In []: movies_doc = movies_doc[:]

In []: movies_doc = [ele.strip() for ele in movies_doc if not ele.startswith('(')]

In []: movies_doc
Out[]: 
['AvgPrice',
 '平均票價',
 'AvpPeoPle',
 '場均人次',
 'BoxOffice',
 '單日票房(萬)',
 'BoxOffice_Up',
 '環比變化',
 'IRank',
 '排名',
 'MovieDay',
 '上映天數',
 'MovieName',
 '影片名',
 'SumBoxOffice',
 '累計票房(萬)',
 'WomIndex',
 '口碑指數']

In []: movies_group = list(zip(*[iter(movies_doc)]*))

In []: movies_group
Out[]: 
[('AvgPrice', '平均票價'),
 ('AvpPeoPle', '場均人次'),
 ('BoxOffice', '單日票房(萬)'),
 ('BoxOffice_Up', '環比變化'),
 ('IRank', '排名'),
 ('MovieDay', '上映天數'),
 ('MovieName', '影片名'),
 ('SumBoxOffice', '累計票房(萬)'),
 ('WomIndex', '口碑指數')]

In []: movies_info.columns = list(zip(*movies_group))[]

In []: movies_info
Out[]: 
  平均票價 場均人次 單日票房(萬) 環比變化  排名 上映天數        影片名 累計票房(萬) 口碑指數
             -          厲害了,我的國        
              -         古墓麗影:源起之戰        
              -             紅海行動       
              -               黑豹        
              -              水形物語         
               -           唐人街探案       
               -         小蘿莉的猴神大叔        
               -            三塊廣告牌         
               -              比得兔        
               -          大壞狐狸的故事         
           

繼續閱讀