使用yfinance循环拉取股票评级时如何添加对应股票代码字段
实现方法
你只需在循环获取单只股票评级数据时,给对应DataFrame新增一列存储当前股票代码即可,同时可以兼容无评级数据的股票避免报错,修改后代码如下:
import yfinance as yf import pandas as pd t = list(df['tic'].unique()) a = [] for i in t: stock = yf.Ticker(i) rec_df = stock.recommendations # 过滤没有评级数据的股票,避免后续处理报错 if rec_df is not None and len(rec_df) > 0: # 新增tic列,所有行赋值为当前循环的股票代码 rec_df['tic'] = i a.append(rec_df) # 可选操作:直接合并为总表,无需后续单独处理列表 total_rec_df = pd.concat(a, ignore_index=True)
效果说明
修改后列表中每个子DataFrame都会新增tic字段,对应每条评级记录所属的股票代码,单表结构示例如下:
| Date | Firm | To Grade | From Grade | Action | tic |
|---|---|---|---|---|---|
| 2012-02-16 06:01:00 | Deutsche Bank | Buy | main | A | |
| 2012-03-06 09:28:00 | Morgan Stanley | Overweight | init | A | |
| 2012-04-19 08:35:00 | Stifel Nicolaus | Buy | main | A |
内容的提问来源于stack exchange,提问作者MichaelB
相关产品推荐
相关产品推荐

