如何通过列标签修改pandas DataFrame指定行的id字段值
问题解决方案
原代码问题说明
- 你使用的
replace方法用于替换数据集中的具体数值,无法通过传入列名直接对整列的筛选结果赋值 - 单独筛选出
select_number子表后再修改,默认不会同步到原数据集,还可能触发链式赋值警告
正确实现方式
直接通过loc同时指定行筛选条件和列标签赋值即可,无需拆分步骤,完全适配自动化处理、不依赖原有id取值的要求:
# 筛选number等于1的行,将对应行的id列统一赋值为1 data_cleaning_sortable.loc[data_cleaning_sortable['number'] == 1, 'id'] = 1
如果需要保留原数据集、将修改结果存为新表,可以先复制原表再操作:
new_data = data_cleaning_sortable.copy() new_data.loc[new_data['number'] == 1, 'id'] = 1
如果已经提前筛选出了符合条件的子表select_number,也可以通过索引匹配修改原表:
data_cleaning_sortable.loc[select_number.index, 'id'] = 1
内容的提问来源于stack exchange,提问作者ichbindas
相关产品推荐
相关产品推荐

