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

如何将Pandas中的.append方法替换为.concat方法?

解决Pandas append方法弃用警告:改用concat优化代码

原来的代码使用append循环拼接DataFrame会触发弃用警告,改用pd.concat的正确方式是先将所有需要拼接的DataFrame存入列表,最后一次性完成拼接,这也是Pandas官方推荐的高效写法。

修改后的完整代码:

import pandas as pd

# 初始化空列表存储各年份的DataFrame
dfs = []

for i in range(2013, 2023):
    year = str(i)
    url = f'https://www.hockey-reference.com/leagues/NHL_{year}_skaters.html'
    
    df = pd.read_html(url, header=1)[0]
    df['year'] = year
    dfs.append(df)

# 一次性拼接所有DataFrame,ignore_index=True自动重置索引
result = pd.concat(dfs, ignore_index=True)
# 过滤掉重复的表头行
result = result[~result['Age'].str.contains("Age")]

result.to_csv('hdb_data.csv', index=False)

关键修改说明:

  • 用空列表dfs替代原有的空DataFrame,循环中把每个处理好的df添加到列表中
  • pd.concat(dfs, ignore_index=True)一次性完成所有DataFrame的拼接,ignore_index=True参数可以直接替代后续的reset_index(drop=True)操作
  • 保留原有的数据清洗逻辑,确保输出结果和原代码完全一致

之前尝试concat失败,大概率是因为直接传递单个DataFrame给该方法,而pd.concat需要接收包含多个DataFrame的可迭代对象(比如列表),先收集再拼接才是正确用法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 03:15:01