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

编写ETL脚本运行extract函数报错:'DataFrame'对象无'append'属性

问题解决:'DataFrame' object has no attribute 'append'

错误原因

这个错误是因为Pandas 2.0及后续版本已经移除了DataFrame.append()方法——你之前的脚本能正常运行,是因为当时使用的是Pandas 1.x版本。

解决方案

方案1:改用官方推荐的pd.concat()(优先选择)

pd.concat()是Pandas官方指定的append()替代方法,效率更高,尤其适合批量合并多个DataFrame。修改你的extract函数如下:

import pandas as pd
from datetime import datetime
import glob

def extract_from_csv(file_to_process):
    dataframe = pd.read_csv(file_to_process)
    return dataframe

def extract():
    # 用列表收集所有读取的CSV数据
    df_collection = []
    
    for csvfile in glob.glob("*.csv"):
        df_collection.append(extract_from_csv(csvfile))
        
    # 一次性合并所有DataFrame,重置索引
    extracted_data = pd.concat(df_collection, ignore_index=True)
    # 确保只保留需要的列(避免CSV中多余列干扰)
    extracted_data = extracted_data[["Term", "Amount"]]
    return extracted_data

方案2:降级Pandas到1.x版本(应急用,不推荐)

如果暂时不想修改代码,可以降级到支持append()的旧版Pandas:

pip install pandas==1.5.3

注:不推荐长期使用此方案,新版本Pandas修复了大量bug并优化了性能。

额外提示

如果你的CSV文件中存在缺失Term或Amount列的情况,可以在合并后用fillna()处理空值,或者在extract_from_csv读取时指定列:

def extract_from_csv(file_to_process):
    # 只读取需要的列,避免冗余数据
    dataframe = pd.read_csv(file_to_process, usecols=["Term", "Amount"])
    return dataframe

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 18:12:28