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

筛选DataFrame后为指定单元格赋值失效,求解决方案

解决DataFrame指定单元格赋值不生效的问题

问题原因

你当前的代码操作的是原DataFrame的临时副本,而非原数据本身:

df.loc[df['name']=='aagicampus'].reset_index(drop=True).at[0,'words']='test'

df.loc[df['name']=='aagicampus']返回的是原DataFrame的切片副本,后续reset_index(drop=True)又生成了新的DataFrame对象,最后对这个临时对象的赋值不会同步到原df中。

正确解决方案

以下两种方法直接操作原DataFrame,修改会立即生效,且保留原DataFrame用于后续操作:

方法1:直接用loc批量/精准赋值

如果要给所有name等于aagicampus的行的words列赋值,直接用loc定位行和列:

df.loc[df['name'] == 'aagicampus', 'words'] = 'test'

若确定只有一行匹配,这个写法同样精准,且效率更高。

方法2:用at定位单个单元格(精确到行索引)

如果需要明确指定单个单元格,先获取目标行的索引,再用at修改:

# 获取匹配行的第一个索引
target_index = df[df['name'] == 'aagicampus'].index[0]
# 修改原DataFrame的对应单元格
df.at[target_index, 'words'] = 'test'

内容的提问来源于stack exchange,提问作者Albeiro Gonzalez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 03:40:45