Python调用Wind接口获取金融数据完整指南
本文详解Python中利用WindPy库通过wsd函数批量获取资产收盘价格的方法。重点解析资产列表传入、日期格式处理(字符串与数字串)、缺失值nan显示及空参数表示,并提供将Wind返回的instance对象转换为标准DataFrame的两种代码实现方案,适用于量化数据预处理。
Python调用Wind接口获取金融数据完整指南
从Wind接口导入的数据在Python中返回的数据类型被封装为instance对象。
以获取一系列资产在特定时间段内的收盘价格为例进行说明。
需要获取数据的多个资产代码需预先保存于一个list列表中,随后作为整体参数传入下载函数。
日期参数推荐使用标准的字符串格式,例如“2018-02-28”。
此外,使用数字串形式表示的日期也是被允许的有效输入方式。
在导入的数据结果中,若遇到缺失数据,Python环境会将其显示为nan。
若调用函数时不指定其他额外参数,需使用空字符串“”占位,这与MATLAB导入Wind数据的方式存在差异。
from WindPy import *
w.start()
import pandas as pd
assetList = ["000300.SH", "000905.SH"]
startDate = "2012-01-02"
endDate = "2013-01-02"
dataImport = w.wsd(assetList, "close", startDate, endDate, "")
#type(dataImport) 类型是instance
#wsd是日期序列的wind导入函数,"close"是wind导入的指标名称
#如果下载其他指标,“”内可以设置相应的参数,比如单位、币种等。
#通过在wind右下角输入cg,获得wind数据下载代码生成器页面
dates = pd.to_datetime(dataImport.Times)
#time series data, 日期作为后面df的index
#作为index时,日期格式统一一下
#错误:df = pd.DataFrame(dataImport.Data, index = dates.strftime("%Y-%m-%d"), columns = assetList)
#生成一个收盘价格的时间序列表格,行名称是日期,列名称是股票代码
#dataImport.data的表达方式:列是日期,资产是行,所以需要转置。要么在转置之后加上index和column。
#要么在加上index和column之后再转置,但加的时候跟上面的不一样。
#方法一:
df = pd.DataFrame(dataImport.Data).T
df.index = dates.strftime("%Y-%m-%d")
df.columns = assetList
#方法二:
df = pd.DataFrame(dataImport.Data, index = assetList, columns = dates.strftime("%Y-%m-%d")).T
以上即为Python实现从Wind导入数据的核心步骤与注意事项,希望能为读者提供有效参考,欢迎支持本站获取更多技术内容。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









