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

修复ValueError:提取Sentiment Score>0的Symbol数据失败

解决方案

错误原因

  1. iloc 使用错误:iloc 是基于整数位置的索引,不能直接传入列名(比如'Sentiment Score')。你写的df_strong_sell.iloc[[i+1,'Sentiment Score']]会把列名当成字符串去转数值,直接触发ValueError。
  2. 冗余循环:Pandas 本身支持向量化操作,手动遍历行既低效又容易出错,完全没必要。

高效修复代码

直接用布尔索引筛选符合条件的行,再提取Symbol列即可,这是Pandas的标准用法:

# 筛选 Sentiment Score > 0 的行,提取对应 Symbol 并转成列表
df_sellable = df_strong_sell[df_strong_sell['Sentiment Score'] > 0]['Symbol'].tolist()

如果需要保留DataFrame结构(而非列表),去掉.tolist()即可:

# 得到只包含符合条件 Symbol 的DataFrame
filtered_df = df_strong_sell[df_strong_sell['Sentiment Score'] > 0][['Symbol']]

原代码的手动修复(不推荐,仅作参考)

如果一定要用循环实现,需要把iloc改成loc(按行标签+列名访问),同时简化判断逻辑:

df_sellable = []
# 用 iterrows() 遍历行更清晰
for idx, row in df_strong_sell.iterrows():
    if row['Sentiment Score'] > 0:
        df_sellable.append(row['Symbol'])

额外说明

原代码里把Sentiment Score乘1000000再转int的操作完全多余,直接用原始浮点数值判断>0就可以,既简洁又避免类型转换错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 02:27:42