You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何打印akshare获取的A股行情表中指定的「名称」和「最新价」列?

问题描述

执行以下代码获取A股实时行情:

import akshare as ak

# 获取A股实时行情数据
stock_prices = ak.stock_zh_a_spot()
print(stock_prices)

得到的结果格式示例如下:

代码    名称    最新价   涨跌额    涨跌幅     买入     卖出     昨收     今开     最高  \
0     bj430017  星昊医药   9.96 -0.11 -1.092   9.96   9.97  10.07  10.08  10.10   
1     bj430047  诺思兰德  15.20  0.22  1.469  15.20  15.21  14.98  15.46  16.16   
2     bj430090  同辉信息   2.65  0.01  0.379   2.64   2.65   2.64   2.68   2.68   
3     bj430139  华岭股份  10.82  0.31  2.950  10.76  10.82  10.51  10.48 

想要打印其中「名称」和「最新价」两列,尝试了以下代码但无法正常运行:

for code, price in stock_prices.items():
    print(f"股票代码:{code},最新价格:{price['最新价']}")
正确实现方法

错误原因

ak.stock_zh_a_spot()返回的是Pandas DataFrame对象,而非字典,因此不能使用字典的.items()方法遍历。需要用DataFrame专属的遍历方式。

方法1:使用iterrows()逐行遍历

import akshare as ak

stock_prices = ak.stock_zh_a_spot()
# iterrows()返回每行的索引和行数据(Series对象)
for _, row in stock_prices.iterrows():
    print(f"股票名称:{row['名称']},最新价格:{row['最新价']}")

方法2:先提取目标列再遍历

如果只需要「名称」和「最新价」,可以先筛选出这两列再处理,效率更高:

import akshare as ak

stock_prices = ak.stock_zh_a_spot()
# 提取指定列
target_cols = stock_prices[['名称', '最新价']]
for _, row in target_cols.iterrows():
    print(f"股票名称:{row['名称']},最新价格:{row['最新价']}")

方法3:用apply()批量处理(简洁写法)

import akshare as ak

stock_prices = ak.stock_zh_a_spot()
# axis=1表示按行处理,lambda函数接收每行数据并打印
stock_prices[['名称', '最新价']].apply(lambda x: print(f"股票名称:{x['名称']},最新价格:{x['最新价']}"), axis=1)

内容的提问来源于stack exchange,提问作者Steven

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 07:02:41