一直以为Wind的API很高贵
最近才知道原来有Wind账号
就可以用python从wind底层数据库提数
excel插件瞬间不香了
🙋如果Wind账号有API权限,点击量化--数据接口--Python修复;等Wind电脑端修复十几秒就可以用;点击代码生成器,选择python语言,点选需要的数据,然后代码生成器会弹出对应的python代码,对该段代码进行简单修改即可。
🙋在pycharm编辑界面输入函数运行,即可得到相应的数据。.Fields表明该函数返回有几种数据;而返回的数据存放在.Data,该数据的数据类型是列表嵌套列表,元素的顺序与上述.Fields的顺序一致。
🙋多维列表可以直接转dataframe,但列表里的一个元素就是生成dataframe的一行数据,因此可以将其转置。
🙋得到沪深300成分股的代码后,运用函数从Wind底层数据库调取数据且对函数结果进行整理,返回沪深300成分股的所有涨跌幅数据。
🙋因为不熟悉证券代码编号,所以再对datafram的列名进行映射,将其改成中文名字。
import pandas as pd
import numpy as np
from WindPy import w
import datetime
w.start()
current_day = datetime.datetime.now().strftime("%Y-%m-%d")
yesterday_day = (datetime.datetime.now()-datetime.timedelta(days=1)).strftime("%Y-%m-%d") ##昨天
###1.获取沪深300成分股
husen_300 = w.wset("sectorconstituent","date=%s;windcode=000300.SH"%yesterday_day)
husen_300 = pd.DataFrame(data=husen_300.Data[1:]).T ##多维列表转dataframe,一个列别
husen_300.columns = ['code','company']
###2.调取沪深300成分股的收盘涨跌幅数据
def get_data(stocks,i,day_time,yesterday_day):
data = w.wsd(stocks,i,day_time,yesterday_day, "")
df = data.Data
data_columns = data.Times
data = pd.DataFrame(df, columns=data_columns, index=stocks).T
return data
stocks = husen_300['code'].values.tolist() ##数据类型要是列表
data_pct_chg = get_data(stocks,"pct_chg","ED-10TD",yesterday_day)
##将代码名字映射为中文名字
dict = dict(zip(husen_300["code"],husen_300["company"]))
data_pct_chg.columns = data_pct_chg.columns.map(dict)
print(data_pct_chg)
文章转载自筑基期摸鱼大师,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。