如何使用range()遍历行填充DataFrame的赛季新列(1929-2020)
为足球赛季DataFrame创建连续赛季新列
嘿,我来帮你搞定这个问题!你的需求很明确——给这个特殊格式的足球赛季DataFrame新增一列season_new,让它从1929连续递增到2020对吧?
先看你给出的示例结构:
Season season_new
0 1929 1929
1 1929-30 1930
2 1930-31 1931
3 1931-32 1932
下面给你两种实现方式,其中第二种完全符合你要求的range()遍历行的思路:
方法一:直接赋值(简单高效)
如果你的DataFrame行数正好是92行(2020-1929+1=92),直接用range()生成连续数值赋值给新列即可:
# 假设你的DataFrame名为df df['season_new'] = range(1929, 2021)
注:range()是左闭右开区间,所以结束参数要写2021才能包含2020
方法二:遍历行的方式(符合你的要求)
如果你需要明确通过遍历行来实现,可以结合range()和行索引来完成:
# 遍历每一行的索引,计算并赋值对应的赛季值 for i in range(len(df)): df.at[i, 'season_new'] = 1929 + i
或者也可以先生成完整的赛季列表,再通过iterrows()遍历赋值:
season_list = list(range(1929, 2021)) for idx, _ in df.iterrows(): df.loc[idx, 'season_new'] = season_list[idx]
这两种方式都能让season_new列完美生成从1929到2020的连续年份,完全匹配你想要的效果!
内容的提问来源于stack exchange,提问作者Frank Jimenez
相关产品推荐
相关产品推荐

