Python Pandas DataFrame append 方法报错原因及解决方法

AttributeError: ‘DataFrame’ object has no attribute ‘append’
1、报错原因
参考文档:https://pandas.pydata.org/docs/whatsnew/v2.0.0.html#removal-of-prior-version-deprecations-changes

在 pandas 中的 DataFrame 对象上使用 append 方法报错,原因是从 1.4.0 版本开始,抛出弃用警告,pandas 2.0 开始 DataFrame.append() 和 Series.append() 已经删除这个方法。可以用 pd.concat() 方法替代。append 方法已经被弃用,因此不再可用。

2、使用 pd.concat() 代替

df = pd.concat([df, pd.DataFrame([new_row])], ignore_index=True)

3、使用_append()
新版本的Pandas中,可以简单地使用_append()即 来代替。但不应使用建议使用。append()没有更改为_append(),_append()是一个私有内部方法,append()已从pandas API 中删除。

df = df1._append(df2,ignore_index=True)

3、使用loc()
参考文档:Python pandas dataframe iloc 和 loc 的用法及区别

如果添加单行,可以使用loc添加,代码如下,

df.loc[len(df)] = new_row

例如,

df = pd.DataFrame({'A': range(3), 'B': list('abc')})
df.loc[len(df)] = [4, 'd']
df.loc[len(df)] = {'A': 5, 'B': 'e'}
df.loc[len(df)] = pd.Series({'A': 6, 'B': 'f'})

4、 pd.concat()使用示例
pd.concat() 是 Pandas 库中用于合并数据的函数,通常用于合并多个数据框或序列。

例如,

import pandas as pd

# 创建两个数据框
data1 = {'A': [1, 2, 3], 'B': [4, 5, 6]}
data2 = {'A': [7, 8, 9], 'B': [10, 11, 12]}

df1 = pd.DataFrame(data1)
df2 = pd.DataFrame(data2)

# 使用 pd.concat 合并数据框,axis=0 表示按行合并
result = pd.concat([df1, df2], axis=0)

print(result)

 

   
 
 

为你推荐
Ta的个人站点

mb发布文章164篇


imcn微信公众号

分类