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)
为你推荐