量化分析第一步就是要获取数据,这里采用AK-share提供的数据,并且缓存到本地,通过pandas自带的保存为h5文件:
import akshare as ak
import pandas as pddef 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 ilocstock_code = series['代码'] # Access the '代码' column directlystock_name = series['名称'] # Access the '名称' column directlyif 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()