如何为名称包含'Col'的所有DataFrame列批量加1?
批量给DataFrame中含指定关键词的列加1的解决方案
这里有几种高效的批量处理方法,不用逐个列手动赋值:
方法1:用filter快速筛选目标列
直接通过filter(like='Col')定位所有含'Col'的列,然后批量执行加1操作:
# 一键给所有含'Col'的列加1 df[df.filter(like='Col').columns] += 1
这个方法简洁直接,df.filter(like='Col')会自动筛选出列名包含'Col'的子数据集,取它的列名列表后直接对原DataFrame的对应列做更新。
方法2:用布尔索引精准匹配列名
如果需要更灵活的匹配逻辑(比如区分大小写、正则匹配),可以先生成列名的布尔掩码:
# 生成标记含'Col'列的布尔数组 col_mask = df.columns.str.contains('Col') # 对符合条件的列批量加1 df.loc[:, col_mask] += 1
str.contains()支持正则表达式,比如你要匹配严格以'Col_'开头的列,可以写成df.columns.str.contains(r'^Col_')。
注意:保留原始数据
如果不想修改原DataFrame,记得先复制一份再操作:
df_copy = df.copy() df_copy[df_copy.filter(like='Col').columns] += 1
内容的提问来源于stack exchange,提问作者gorilla
相关产品推荐
相关产品推荐

