天天看点

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[]: 
  平均票价 场均人次 单日票房(万) 环比变化  排名 上映天数        影片名 累计票房(万) 口碑指数
             -          厉害了,我的国        
              -         古墓丽影:源起之战        
              -             红海行动       
              -               黑豹        
              -              水形物语         
               -           唐人街探案       
               -         小萝莉的猴神大叔        
               -            三块广告牌         
               -              比得兔        
               -          大坏狐狸的故事         
           

继续阅读