Python 使用Pandas运行df = pd.DataFrame(df).append(new_row, ignore_index=True)代码,报错: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)

推荐文档

相关文档

大家感兴趣的内容

随机列表