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

Pandas循环中如何根据HTTP请求状态码为指定行Login列赋值?

解决方案

你可以通过遍历DataFrame的索引+对应站点值的方式,直接给对应行的Login列赋值,修改后的代码如下:

import pandas as pd
from requests import get

# 读取csv初始化DataFrame
df = pd.read_csv('sites.csv', sep=',', usecols=['Site', 'Login'])
# 拼接login后缀
df['Site'] = df['Site'].astype(str) + 'login'
# 先初始化Login列为空字符串
df['Login'] = ''

# 同时遍历索引和站点地址
for idx, site_url in df['Site'].items():
    try:
        # 加10秒超时避免长时间等待
        result = get(site_url, timeout=10)
        if result.status_code == 200:
            df.loc[idx, 'Login'] = 'yes'
            print(f"{site_url} login page")
        else:
            print(f"{site_url} not a login page")
    except Exception as e:
        # 捕获网络错误、超时等异常情况
        print(f"{site_url} 请求失败:{str(e)}")

# 可以输出查看最终结果,也可以保存回csv
print(df)
# df.to_csv('sites_with_login.csv', index=False)

核心修改说明

  • 不再单独生成newdf,直接在原df上处理,减少冗余变量
  • 遍历的时候使用items()方法同时获取行索引idx和对应的站点地址,通过df.loc[idx, 'Login']直接给对应行的Login字段赋值
  • 增加了异常捕获逻辑,避免网络不通、域名不存在等问题导致脚本直接崩溃
  • 给get请求增加了超时参数,避免脚本长时间无响应

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 01:54:00