如何替换pandas中Series非唯一索引对应的元素值

set_value 是Pandas v0.21版本之前的旧方法,目前已经被官方正式废弃,高版本Pandas环境中调用该方法会直接失效或抛出废弃警告,可以用以下两种方案完成单值修改:
方法1:loc索引器(通用场景首选)
loc支持标签索引匹配,适配DataFrame、Series等各类场景,写法如下:
- 如果你操作的是多列DataFrame,要修改
Kelly对应subject列的值:
df.loc['Kelly', 'subject'] = '替换后的新值'
- 如果你操作的是单列Series结构:
df.loc['Kelly'] = '替换后的新值'
方法2:at索引器(单值修改性能更高)
针对单个标量值修改的场景,at的执行效率比loc更优,写法如下:
- DataFrame场景:
df.at['Kelly', 'subject'] = '替换后的新值'
- Series场景:
df.at['Kelly'] = '替换后的新值'
注意事项
- 如果你的索引存在重复项,上述两种写法会同时修改所有索引为Kelly的对应值
- 注意索引名、列名的大小写、特殊字符要和实际数据完全一致,避免匹配失败
内容的提问来源于stack exchange,提问作者zobayer1607008
相关产品推荐
相关产品推荐

