如何为Pandas DataFrame的每一行添加爬取迭代器i?
解决方法
你只需要在每次读取到单页的DataFrame后,新增一列来记录当前迭代器i的值,再把这个带标记的DataFrame加入到data列表中即可。具体修改如下:
修改后的完整代码
import requests import pandas as pd data = [] for i in range(0,24): for j in range(1,15): if i < 9: URL = 'https://www.weltfussball.de/spielerliste/bundesliga-200' + str(i) + '-' + '200' + str(i+1) URL_ = URL + '/nach-name/'+ str(j) + '/' response = requests.get(URL_, headers={'User-Agent': 'Mozilla/5.0'}) # 读取单页数据并暂存 single_df = pd.read_html(response.text)[1] # 新增列标记当前迭代批次的i值 single_df['batch_i'] = i # 将带标记的DataFrame加入列表 data.append(single_df) df = pd.concat(data).reset_index(drop=True)
关键改动说明
- 新增
single_df变量暂存单页爬取的DataFrame,方便后续修改操作 - 通过
single_df['batch_i'] = i为当前页所有行添加批次标记列(列名可根据需求修改为更语义化的名称,比如season_cycle) - 最后
reset_index时添加drop=True,避免保留拼接前的旧索引列(可选,根据你的数据处理需求调整)
内容的提问来源于stack exchange,提问作者Tobitor
相关产品推荐
相关产品推荐

