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

Pandas遍历DataFrame时如何利用Team_web列值为NFL球队名单CSV文件命名

解决方法:使用当前迭代行的Team_web值而非整个列

你的问题核心出在CSV文件名的拼接逻辑上:在iterrows()循环中,df_teams['Team_web']调用的是整个DataFrame的Team_web列(一个Series对象),而不是当前正在遍历的那一行的Team_web值。这就导致字符串拼接时试图把普通字符串和Series对象组合,触发了类型错误。

修正后的完整代码

import pandas as pd

# 爬取球队名单
for index, row in df_teams.iterrows():
    url = row['Team_url']
    # 提取页面中的表格
    dfs = pd.read_html(url)
    # 获取第一个表格作为球队名单
    df_roster = dfs[0]
    # 检查名单输出(可选)
    print(df_roster)
    # 写入CSV文件:使用当前行的Team_web值命名
    df_roster.to_csv(f'roster_{row["Team_web"]}.csv', sep=',', index=False)

关键改动说明

  1. 替换列调用为行调用:把df_teams['Team_web']改成row['Team_web']——row是iterrows()返回的当前行的Series对象,直接通过row['Team_web']就能拿到当前球队对应的Team_web字符串值,完全适配文件名的拼接需求。
  2. 使用f-string优化格式(可选):用Python的f-string格式化文件名,比传统字符串拼接更简洁易读,你也可以用传统写法:'roster_' + row['Team_web'] + '.csv',效果完全一致。

原代码报错的原因

df_teams['Team_web']返回的是整个球队列的Series集合,当你尝试把它和'roster'、'.csv'这类普通字符串拼接时,Python无法处理“字符串 + Series”的组合操作,因此抛出了TypeError: argument of type 'method' is not iterable的错误。而row['Team_web']是单个字符串,完全符合文件名的拼接要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 19:17:33