Pandas DataFrame无append属性报错 求无需降级的解决办法
解决Pandas中DataFrame.append()报错的替代方案
报错原因
Pandas 2.0及以上版本已正式移除DataFrame.append()方法,因此调用该方法会触发AttributeError。官方推荐使用pd.concat()作为替代方案,同时该方法在处理多DataFrame合并时效率更高。
具体修改方案
不需要预先创建空DataFrame,直接将需要合并的子DataFrame收集后用pd.concat()一次性合并:
代码示例
from pandas import DataFrame, concat # 获取垃圾邮件和正常邮件的DataFrame spam_df = dataFrameFromDirectory(r'D:\email_classifier\spam', 'spam') ham_df = dataFrameFromDirectory(r'D:\email_classifier\ham', 'ham') # 合并两个DataFrame,ignore_index=True用于重置索引避免重复 data = concat([spam_df, ham_df], ignore_index=True)
扩展性优化(适用于多分类场景)
如果后续需要添加更多邮件分类,可以先将所有子DataFrame存入列表,再统一合并:
from pandas import DataFrame, concat df_list = [] # 添加垃圾邮件数据 df_list.append(dataFrameFromDirectory(r'D:\email_classifier\spam', 'spam')) # 添加正常邮件数据 df_list.append(dataFrameFromDirectory(r'D:\email_classifier\ham', 'ham')) # 可继续添加其他分类的DataFrame # 合并所有DataFrame data = concat(df_list, ignore_index=True)
注意事项
- 确保
dataFrameFromDirectory函数返回的DataFrame列名为message和class,保证合并时列对齐; - 路径字符串前添加
r转为原始字符串,避免反斜杠转义问题。
内容的提问来源于stack exchange,提问作者Zorro
相关产品推荐
相关产品推荐

