#导入数据库Baostockimport baostock as bs#导入数据库pandasimport pandas as pdimport pickle
运行代码,如果程序没有报错,就说明导入成功。接下来,我们可以定义一个获取股票数据的函数,以便未来还可以复用。代码如下:
def load_stock(start_date, end_date, output_file): """ 加载股票数据并保存为Pickle文件 :param start_date: 开始日期 (字符串格式,YYYY-MM-DD) :param end_date: 结束日期 (字符串格式,YYYY-MM-DD) :param output_file: 输出文件名 """ try: # 尝试读取已存在的 Pickle 文件 df = pd.read_pickle(output_file) print("载入股票数据文件完毕") except FileNotFoundError: print("文件未找到,重新下载中") # 登录 Baostock lg = bs.login() rs = bs.query_history_k_data_plus("sh.601318", "date,code,open,high,low,close,preclose,volume", start_date=start_date, end_date=end_date, frequency="d", adjustflag="3") data_list = [] while (rs.error_code == '0') & rs.next(): data_list.append(rs.get_row_data()) bs.logout() df = pd.DataFrame(data_list, columns=rs.fields) df.to_pickle(output_file) print("数据下载完成并保存为 Pickle 文件") return df
运行代码之后,就完成了函数的定义。下面就可以使用这个函数来获取数据。输入代码如下:
# 调用函数zgpa = load_stock(start_date='2017-03-09', # Baostock 的日期格式为 YYYY-MM-DD end_date='2020-03-05', output_file='601318.pkl')
运行代码,会提示未找到,重新下载,下载完毕。
因为我们是首次使用,就会出现这种提示,下载好了,可以使用下面这个代码查看数据:
import pandas as pd# 加载数据df = pd.read_pickle('601318.pkl')# 查看数据的前五行print("数据的前五行:")print(df.head())
运行代码:
从运行结果中可以看到,股票数据已经成功加载,包括的字段有Date(日期)、High(最高价)、Low(最低价)、Open(开盘价)、Close(收盘价)、Wolume(成交量),和preclose(上一日收盘价)。
大家也可以尝试用其他的形式查看,西西这边随便举例演示一下:
Copyright © 2024-2025 成都宁时科技有限公司 版权所有