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

Python实现yfinance返回股票代码与上市公司名称的匹配方法

实现方案

你可以先构建股票代码到公司名称的映射字典,再按CSV/yfinance返回的升序代码顺序匹配输出即可,具体代码如下:

步骤1:构建代码-公司名映射字典

使用正则精准拆分原始公司条目,避免公司名含数字导致的代码匹配错误:

import re

code_company_map = {}
for item in company_list:
    # 匹配括号内的4位股票代码和后面的公司全称
    match_result = re.match(r'.*\((\d+)\)(.*)', item)
    if match_result:
        stock_code = match_result.group(1)
        full_code = f"{stock_code}.KL"
        company_name = match_result.group(2).strip()
        code_company_map[full_code] = company_name

步骤2:按升序顺序匹配输出

两种获取排序后代码的方式,按需选择即可:

方式1:直接用yfinance返回的已排序列(无需读CSV)

你调用sto_data返回的stocks_adj_close的列本身就是yfinance自动升序排列的代码:

# 拿到排序后的代码列表
sorted_codes = stocks_adj_close.columns.tolist()

# 按要求格式输出
for code in sorted_codes:
    print(f"{code} - {code_company_map[code]}")
方式2:从已导出的CSV读取表头顺序

如果已经导出了CSV文件,可以只加载表头获取排序后的代码,效率更高:

import pandas as pd

# nrows=0表示只读取表头,不加载数据
csv_header = pd.read_csv("你的CSV文件路径.csv", nrows=0)
# 过滤掉日期列,剩下的就是升序排列的股票代码
sorted_codes = [col for col in csv_header.columns if col != "Date"]

# 按要求格式输出
for code in sorted_codes:
    print(f"{code} - {code_company_map[code]}")

输出示例

运行后即可得到你需要的格式:

0011.KL - ACEBRITE-TECH BERHAD
3069.KL - MAINMEGA FIRST CORPORATION BERHAD
4677.KL - MAINYTL CORPORATION BERHAD
...

优化版:直接整合到原有函数

你也可以把匹配逻辑直接加到原来的sto_data函数里,调用时直接输出结果:

import re
import yfinance as yf

def sto_data(start, end, adj_close_fname):
    sto_code = []
    code_company_map = {}
    for item in company_list:
        match_result = re.match(r'.*\((\d+)\)(.*)', item)
        if match_result:
            stock_code = match_result.group(1)
            full_code = f"{stock_code}.KL"
            sto_code.append(full_code)
            code_company_map[full_code] = match_result.group(2).strip()
    stocks_data = yf.download(sto_code,start=start, end=end)
    stocks_adj_close = stocks_data['Adj Close']
    stocks_adj_close.to_csv(adj_close_fname)
    # 直接输出排序后的匹配结果
    for code in stocks_adj_close.columns:
        print(f"{code} - {code_company_map[code]}")
    return stocks_adj_close, code_company_map

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 16:57:03