量化分析第一步就是要获取数据,这里采用AK-share提供的数据,并且缓存到本地,通过pandas自带的保存为h5文件:
import akshare as ak
import pandas as pd
def save_h5_data(key, data):
# 转换非数值列为字符串类型
with pd.HDFStore(f"datasets/{key}.h5", 'w') as store:
store.put(key, data)
def read_h5_data(key):
with pd.HDFStore(f"datasets/{key}.h5", 'r') as store:
return store[key]
def get_data(symbol):
stock_zh_a_daily_df = ak.stock_zh_a_daily(symbol, adjust="qfq")
save_h5_data(symbol, stock_zh_a_daily_df)
def init_load():
stock_dict = {}
stock_zh_a_spot_df = read_h5_data('all')
for i in range(len(stock_zh_a_spot_df)):
series = stock_zh_a_spot_df.loc[i] # Directly access the row with iloc
stock_code = series['代码'] # Access the '代码' column directly
stock_name = series['名称'] # Access the '名称' column directly
if str(stock_code).startswith("sh60") \
or str(stock_code).startswith("sz00") \
or str(stock_code).startswith("sz30"):
stock_dict[str(stock_code)] = str(stock_name)
total = len(stock_dict)
for index, code in enumerate(stock_dict):
name = stock_dict[code]
print(f"start to get data from {code}, name is {name}, {index}/{total}")
get_data(code)
if __name__ == "__main__":
init_load()