解决iloc报错:如何通过行列索引名修改Pandas DataFrame单元格值
解决Pandas通过行列标签修改单元格值的问题
错误原因
你用iloc['b']['y']触发错误,是因为iloc是基于整数位置的索引器,只能接收整数类型的位置参数,不能使用行/列的标签名称(比如'b'、'y')。
正确解决方案
以下是两种可靠的通过行列标签修改单元格值的方法:
方法1:使用
loc索引器(推荐)loc是Pandas专门用于标签索引的工具,语法为loc[行标签, 列标签],可以直接定位到目标单元格并修改:dat1.loc['b', 'y'] = 999这种方式是官方推荐的写法,能避免链式赋值可能引发的
SettingWithCopyWarning,同时逻辑清晰。方法2:使用
at索引器(适合单个单元格快速操作)
如果只需要修改单个单元格,at索引器性能更优,语法和loc类似:dat1.at['b', 'y'] = 999
验证修改结果可以执行print(dat1),输出会显示行'b'的列'y'值已改为999:
x y a 1 3 b 2 999 c 4 10
内容的提问来源于stack exchange,提问作者Brian Smith
相关产品推荐
相关产品推荐

