TuShare 官方定位是一個财經資料接口包,官網位址為:TuShare。
可以用pip直接安裝:
pip install tushare
由于裡面對pandas等安裝包的依賴,最好是在Anaconda環境下進行安裝,不然還要裝很多額外的依賴包,而Anaconda已經打包安裝好了,相信我,Anaconda用起來會讓你愛不釋手。
具體的使用技巧詳見官網:

可以根據需要對自己感興趣的一塊看一下,當然可以通過如下代碼對裡面的大緻屬性和使用無參數的方法進行檢視:
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
輸出大概是這個樣子的:
當然這些資料目前我隻對新上映的電影和電影排名比較感興趣,是以主要是為了用着一塊,
用到的就是這些代碼接口:
import tushare as ts
ts.realtime_boxoffice()
ts.day_boxoffice()
ts.day_boxoffice('2017-05-01')
ts.day_cinema()
ts.month_boxoffice()
挺不錯的。
# 根據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[]:
平均票價 場均人次 單日票房(萬) 環比變化 排名 上映天數 影片名 累計票房(萬) 口碑指數
- 厲害了,我的國
- 古墓麗影:源起之戰
- 紅海行動
- 黑豹
- 水形物語
- 唐人街探案
- 小蘿莉的猴神大叔
- 三塊廣告牌
- 比得兔
- 大壞狐狸的故事