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

遍历列调用API时遇TypeError:float对象不可下标访问

TypeError: 'float' object is not subscriptable 排查方向

核心问题:变量名覆盖导致类型错误

你的代码存在变量重复赋值的致命问题:

  • 循环语句for (tornado, lon) in df.iterrows():中,lon原本是DataFrame的行对象(Series类型),支持通过下标访问列数据
  • 但你随后执行lon = lon['slon'],将lon重新赋值为该条数据的经度值(float类型)
  • 接下来执行t = lon['time']时,试图对float类型变量使用下标访问,直接触发TypeError: 'float' object is not subscriptable

修复方法:修改经度变量名避免覆盖,比如改为lon_val:

for (tornado, row) in df.iterrows():
    date = row['date']
    lat = row['slat']
    lon_val = row['slon']
    t = row['time']

其他需修正的问题

  • astype转换未生效:Sample_df.slat.astype('float')仅做临时转换,未同步到原DataFrame,需改为:
    Sample_df['slat'] = Sample_df.slat.astype('float')
    Sample_df['slon'] = Sample_df.slon.astype('float')
    
  • URL变量引用错误:拼接URL时用了未定义的time变量,实际你定义的是t,需修正:
    url = "https://weather.visualcrossing.com/VisualCrossingWebServices/rest/services/timeline/{},{}/{}T{}?key={}".format(lat, lon_val, date, t, apikey)
    
  • 缺失requests导入:代码使用了requests.get但未导入模块,需在开头添加:
    import requests
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 22:47:04