我试图为我的垃圾邮件分类器创建一个DataFrame对象。它应该包含两列:'messages'和'class'。但是,当我使用dataframe.append
函数将电子邮件作为'messages'添加到我的dataframe中,沿着将文件夹名称作为' class',我收到以下错误:
属性错误:“DataFrame”对象没有属性“append”
为此,我最初创建了一个Dataframe,如下所示data = DataFrame({'message': [], 'class': []})
我尝试使用DataFrame.append()函数将垃圾邮件和业余邮件添加到DataFrame中。下面是我使用的代码:
data = DataFrame({'message': [], 'class': []})
data = data.append(dataFrameFromDirectory('D:\email_classifier\spam', 'spam'))
data = data.append(dataFrameFromDirectory('D:\email_classifier\ham', 'ham'))
从理论上讲,这应该会将电子邮件和文件夹名称添加到数据中。有没有一种方法可以在不使用旧版本pandas的情况下解决这个问题?
1条答案
按热度按时间dbf7pr2w1#
pandas〉= 2.0:
append
已删除,请使用pd.concat
DataFrame.append
在版本1.4中被弃用,并在版本2.0中从pandas API中完全删除请参阅弃用文档以及最初提出弃用的this github issue。
删除它的理由是不鼓励在循环中迭代增长DataFrames(这是人们通常使用
append
的目的)。这是因为append
在每个阶段都创建一个新副本,导致内存中的二次复杂度。在没有
append
的情况下,如果您的数据按行增长,正确的方法是将其累积到记录列表(或DataFrame列表)中,并在最后将其转换为一个大的DataFrame。参考文献: