【公募基金】python重写和Tableau升级

去年使用过Tushare获取基金和股票数据,今年体会了其他平台的不方便之后,重新回到这个平台。并在Tableau上海用户社区分析和西北大学的分享中,都推荐了这个平台。

tushare今年推出了一个新模块“数据工具”,帮助不太理解python的人,比如我提供了进一步的帮助——直接生成代码。可以参考网站https://tushare.pro/webclient/

昨日重新读取了公募基金的数据,重写了逻辑,以此作为python的学习升级。

我发现这其中最关键的是理解语法之后,如何实现「参数循环」,这个似乎是Tableau中没有的。

python代码分享如下。

如果想要注册tushare,欢迎使用我的邀请链接(https://tushare.pro/register?reg=304283 分享此链接,成功注册一个有效用户(指真正会使用tushare数据的用户)可获得50积分,虚假用户带来的积分会被定期回收!)

# 导入tushare
from sqlalchemy import create_engine
import tushare as ts
import time
# 初始化pro接口
pro = ts.pro_api('******************')

# 定义写入本地mysql数据库的函数。
def to_mysql(df, table, database, type):
    # 填写链接信息
    engine = create_engine("mysql+pymysql://root:******@127.0.01:3306/" + database)
    # ?+"?charset=utf8"
    # 开始写入
    df.to_sql(name=table, con=engine, if_exists=type, index=False, index_label=False)
    print(df.shape, 'write done')


df = pro.fund_basic(**{
    "ts_code": "",
    "market": "E",  # market	str	N交易市场: E场内 O场外(默认E)
    "update_flag": "",
    "offset": "",
    "limit": "",
    "status": "L"  # status	str	N	存续状态 D摘牌 I发行 L上市中
})
# to_mysql(df, 'fund_basic_info', 'stock', type='replace')

print(df.shape)
list = df["ts_code"]
print(list)

df6 = pro.fund_company()
print('company', len(df6))  #company 15279
to_mysql(df6, 'fund_company', 'stock', type='append')   # 已经写入

i = 1
for j in list:
    df=pro.fund_portfolio(ts_code=j)        ## 抱歉,您每分钟最多访问该接口60次
    print(i,j,len(df),'持仓')
    to_mysql(df, 'fund_portfolic基金持仓2.0', 'stock', type='append')
    #
    df2 = pro.fund_nav(ts_code=j)  # 净值
    print(i, j, len(df2),'fund-nav基金净值')   ## 抱歉,您每分钟最多访问该接口80次
    to_mysql(df2, 'fund-nav基金净值', 'stock', type='append')
    #
    df3=pro.fund_div(ts_code=j)
    print(i, j, len(df3),'fund-div基金分红')  ## 抱歉,您每分钟最多访问该接口60次
    to_mysql(df3, 'fund-div基金分红', 'stock', type='append')

    df4 = pro.fund_share(ts_code=j)
    print(i,j,len(df4))
    to_mysql(df4, 'fund_share规模', 'stock', type='append')

    df5 = pro.fund_manager(ts_code=j)
    print(i,j,len(df5))
    to_mysql(df5, 'fund_manager_of_company', 'stock', type='append')

    print("----")
    print(i)
    i = i + 1
    if i%30==0:
        print('       **—————sleeping for 21 seconds—————**')
        time.sleep(21)
    else:
        continue

2

在我获得了数据之后,我就可以轻松完成Tableau关系模型了。

2021.3版本有明显的模型改进

之后就可以畅游数据啦。

最近事情繁多,后期再补充本文。

@喜乐君

发布者:喜乐君

喜乐君 | Tableau Partner,Tableau Desktop and Server QA Certification

发表评论

Fill in your details below or click an icon to log in:

WordPress.com 徽标

您正在使用您的 WordPress.com 账号评论。 注销 /  更改 )

Google photo

您正在使用您的 Google 账号评论。 注销 /  更改 )

Twitter picture

您正在使用您的 Twitter 账号评论。 注销 /  更改 )

Facebook photo

您正在使用您的 Facebook 账号评论。 注销 /  更改 )

Connecting to %s

%d 博主赞过: