如何从指定索引开始为Pandas列填充固定值
问题:DataFrame指定索引范围填充列值
我有一个包含如下列的DataFrame:
id label parent 0 ID LABEL SC% split 1 https://lists/100000000006/terms MedDRA RMS List 2 https://lists/100000000006/terms/2937736 Nausea 3 https://lists/100000000006/terms/2937735 Fever
希望从索引2开始,将parent列填充为值MedDRA RMS List,目前找到的方案均为填充整列,请问该如何实现?
预期输出如下:
id label parent 0 ID LABEL SC% split 1 https://lists/100000000006/terms MedDRA RMS List 2 https://lists/100000000006/terms/2937736 Nausea MedDRA RMS List 3 https://lists/100000000006/terms/2937735 Fever MedDRA RMS List
解决方案
可以通过索引切片精准定位目标范围后直接赋值,以下是几种实用方法:
方法1:loc索引(直观易读)
import pandas as pd # 假设你的DataFrame名为df df.loc[df.index >= 2, 'parent'] = 'MedDRA RMS List'
解释:df.index >=2筛选出索引大于等于2的行,指定parent列完成赋值操作,逻辑清晰。
方法2:iloc索引(基于位置定位)
# 获取parent列的位置索引 parent_col_idx = df.columns.get_loc('parent') # 定位从索引2开始的所有行 + parent列,赋值 df.iloc[2:, parent_col_idx] = 'MedDRA RMS List'
解释:适合需要通过列位置而非列名操作的场景,兼容性更强。
方法3:apply遍历行(灵活适配复杂条件)
df['parent'] = df.apply(lambda row: 'MedDRA RMS List' if row.name >= 2 else row['parent'], axis=1)
解释:遍历每一行,通过行索引判断是否需要替换值,适合后续有更多条件扩展的场景。
内容的提问来源于stack exchange,提问作者rshar
相关产品推荐
相关产品推荐

