‘DataFrame‘ object has no attribute ‘append‘

在Pandas中,DataFrame对象并没有一个名为append的方法。你可能是想使用append方法来追加行,但实际上应该使用的是pd.concat或者直接使用loc来追加行。

使用pd.concat追加行


如果你想追加一行到DataFrame中,可以使用pd.concat方法。这是一个示例:

import pandas as pd

# 创建示例 DataFrame
data = {
    'user_id': [1, 2, 3, 4, 5, 1, 2, 3],
    'learn_process': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'],
    'price': [100, 200, 300, 400, 500, 100, 200, 300]
}
df_study_info = pd.DataFrame(data)

# 新的一行数据
new_row = {'user_id': 6, 'learn_process': 'I', 'price': 600}

# 使用 pd.concat 追加行
df_study_info = pd.concat([df_study_info, pd.DataFrame(new_row, index=[6])], ignore_index=True)

# 查看结果
print(df_study_info)


使用loc追加行


如果你想要在特定位置追加一行,可以使用loc来指定索引:

# 新的一行数据
new_row = {'user_id': 6, 'learn_process': 'I', 'price': 600}

# 使用 loc 追加行
df_study_info.loc[6] = new_row.values()

# 重新设置索引
df_study_info = df_study_info.reset_index(drop=True)

# 查看结果
print(df_study_info)


使用at追加行


如果你知道确切的索引位置,并且想要直接插入行,可以使用at方法:

# 新的一行数据
new_row = {'user_id': 6, 'learn_process': 'I', 'price': 600}

# 使用 at 追加行
df_study_info.at[6] = new_row.values()

# 重新设置索引
df_study_info = df_study_info.reset_index(drop=True)

# 查看结果
print(df_study_info)


修正代码
如果你原本的代码中使用了append方法,但遇到了AttributeError,可以参考以下修正后的代码:


import pandas as pd

# 创建示例 DataFrame
data = {
    'user_id': [1, 2, 3, 4, 5, 1, 2, 3],
    'learn_process': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'],
    'price': [100, 200, 300, 400, 500, 100, 200, 300]
}
df_study_info = pd.DataFrame(data)

# 新的一行数据
new_row = {'user_id': 6, 'learn_process': 'I', 'price': 600}

# 使用 pd.concat 追加行
df_study_info = pd.concat([df_study_info, pd.DataFrame(new_row, index=[6])], ignore_index=True)

# 查看结果
print(df_study_info)


注意事项
ignore_index=True:当使用pd.concat时,如果你不想保留原有的索引,可以设置ignore_index=True来重新生成索引。
reset_index(drop=True):如果你使用loc或at方法追加行,然后需要重新设置索引以确保索引的连续性,可以使用reset_index(drop=True)。
通过以上方法,你可以有效地在DataFrame中追加行而不遇到AttributeError

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值