|
|
发表于 2023-8-27 08:08:19
|
显示全部楼层
本楼为最佳答案
你可以使用两个嵌套的循环来实现对不同时间段的下载。首先,你需要定义一个包含所需时间范围的列表,然后使用两个循环来迭代这个列表。在内层循环中,你可以调用 bs.query_operation_data() 函数来下载数据,并将其保存到相应的文件中。
以下是修改后的代码示例:
- import baostock as bs
- import pandas as pd
- # 登陆系统
- lg = bs.login()
- # 显示登陆返回信息
- print('login respond error_code:' + lg.error_code)
- print('login respond error_msg:' + lg.error_msg)
- # 定义年份和季度范围
- start_year = 2010
- end_year = 2020
- quarters = [1, 2, 3, 4]
- # 营运能力
- operation_list = []
- for year in range(start_year, end_year + 1):
- for quarter in quarters:
- rs_operation = bs.query_operation_data(code="sh.600000", year=year, quarter=quarter)
- while (rs_operation.error_code == '0') & rs_operation.next():
- operation_list.append(rs_operation.get_row_data())
-
- # 创建DataFrame并保存到csv文件
- result_operation = pd.DataFrame(operation_list, columns=rs_operation.fields)
- result_operation.to_csv("D:\\operation_data.csv", encoding="gbk", index=False)
- # 登出系统
- bs.logout()
复制代码
这段代码会在指定的时间范围内迭代每个季度,并将数据保存到 D:\\operation_data.csv 文件中。请确保你已经安装了 baostock 和 pandas 库。 |
|