You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pandas使用loc添加行时覆盖已有行的问题及解决方案咨询

解决方案

方法1:重置索引(适合需要连续索引的场景)

先把现有索引重置为连续整数,这样后续用loc[len(data)]就能安全新增行,不会覆盖已有数据:

# 重置索引,丢弃原索引
data = data.reset_index(drop=True)
# 新增行
data.loc[len(data)] = ["list"]

方法2:基于最大索引新增(保留原索引)

如果不想修改现有索引,直接找到当前最大的loc索引,加1后作为新行的索引即可:

max_idx = data.index.max()
data.loc[max_idx + 1] = ["list"]

方法3:用pd.concat高效新增(大数据集首选)

append效率低是因为每次都会创建新的DataFrame,换成pd.concat性能更优,单条或批量新增都适用:

import pandas as pd
# 构造新行的DataFrame,需与原数据列数、列名匹配
new_row = pd.DataFrame([["list"]], columns=data.columns)
# 合并原数据和新行,设置ignore_index=True可重置为连续索引
data = pd.concat([data, new_row], ignore_index=False)

关键错误修正

你原代码里data = data.drop(1703,inplace=True)存在问题:inplace=True时drop方法会返回None,导致data变成空对象,后续操作必然报错。正确写法二选一:

# 方式1:不使用inplace,重新赋值
data = data.drop(1703)
# 方式2:使用inplace,无需赋值
data.drop(1703, inplace=True)

内容的提问来源于stack exchange,提问作者Safiqur Rahman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 10:56:05