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

yfinance数据处理:含空格Sector列拆分后合并报错求助

解决股票数据Sector字段拆分问题

问题描述

使用yfinance获取股票数据时,通过空格拼接字段生成字符串,再用str.split()拆分后,带空格的Sector字段(如“Communication Services”)被拆分为“Sector”和“Sector1”两列,尝试手动合并时出现属性或字符串错误,无法得到完整的Sector列。

错误原因

以空格作为字段分隔符拼接数据,而部分Sector字段本身包含空格,导致str.split()默认按任意空格拆分时,将单个Sector字段拆分为多列;后续手动合并时因列值类型不一致或空值处理不当引发错误。

解决方案

方案1:从根源避免拆分(推荐)

改用不含空格的分隔符(如|)拼接字段,确保Sector字段作为整体被保留:

修改代码如下:

import yfinance as yf
import pandas as pd
from concurrent.futures import ThreadPoolExecutor

list_of_futures = []

def get_stats(ticker):
    info = yf.Tickers(ticker).tickers[ticker].info
    # 用|作为分隔符,替换原来的空格
    s = f"{ticker}|{info['currentPrice']}|{info['marketCap']}|{info['sector']}"
    list_of_futures.append(s)

ticker_list = ['AAPL', 'ORCL', 'GTBIF', 'META']

with ThreadPoolExecutor() as executor:
    executor.map(get_stats, ticker_list)
    
(
    pd.DataFrame(list_of_futures)
        [0].str.split('|', expand=True)  # 指定分隔符为|
        .rename(columns={0: "Ticker", 1: "Price", 2: "Market Cap", 3: "Sector"})
        .to_excel("yahoo_futures.xlsx", index=False)
)

方案2:合并已拆分的列

如果已经生成了拆分后的DataFrame,可通过合并列值的方式恢复完整Sector:

import yfinance as yf
import pandas as pd
from concurrent.futures import ThreadPoolExecutor

list_of_futures = []

def get_stats(ticker):
    info = yf.Tickers(ticker).tickers[ticker].info
    s = f"{ticker} {info['currentPrice']} {info['marketCap']} {info['sector']}"
    list_of_futures.append(s)

ticker_list = ['AAPL', 'ORCL', 'GTBIF', 'META']

with ThreadPoolExecutor() as executor:
    executor.map(get_stats, ticker_list)

# 处理拆分后的列
df = pd.DataFrame(list_of_futures)[0].str.split(expand=True)
# 合并Sector相关列,处理空值避免多余空格
df['Sector'] = df.apply(lambda row: ' '.join([str(row[col]) for col in range(3, df.shape[1]) if pd.notna(row[col])]), axis=1)
# 重命名其他列并保留需要的字段
df = df.rename(columns={0: "Ticker", 1: "Price", 2: "Market Cap"})[["Ticker", "Price", "Market Cap", "Sector"]]
df.to_excel("yahoo_futures.xlsx", index=False)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 00:35:17