pandas中按行名而非行索引获取与设置DataFrame单元格值的方法
操作方案
Pandas 内置的 loc 索引器专门用于按**行标签(你所说的行名)、列标签(列名)**读写单元格,完全不依赖行/列的位置索引,完全适配你的需求,且在 pandas 1.0.1 版本可以直接使用,无需额外适配。
1. 读取单元格值
使用语法为 df.loc[行名, 列名],示例如下:
# 读取行名为1、列名为1的单元格,返回结果为10 target_value = df.loc[1, 1] # 读取行名为7、列名为10的单元格,返回结果为0 target_value = df.loc[7, 10]
如果传入不存在的行名(比如6)或列名,会直接抛出KeyError,符合预期。
2. 修改/设置单元格值
同样通过 loc 索引器直接赋值即可,示例如下:
# 将行名为3、列名为5的单元格值修改为20 df.loc[3, 5] = 20
赋值后对应位置的值会直接更新到原DataFrame中。
额外说明
不要和iloc索引器混淆:iloc是按位置索引(从0开始计数的行/列顺序)取值的,比如df.iloc[5, 0]取的是第6行、第1列的值,对应你示例里行名为7的第一列,和行名/列名完全无关,不要用错。
内容的提问来源于stack exchange,提问作者Ricc
相关产品推荐
相关产品推荐

