You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过loc为满足H='R'的多行批量设置G、I列值为'U'?

批量修改DataFrame多列值的Pythonic写法

问题背景

现有如下DataFrame:

A  B  C  D  E  F  G  H  I  J  K
0    .  .  .  .  .  .  X  L  .  .  .
1    .  .  .  .  .  .  X  A  .  .  .
...
300  .  .  .  .  .  .  X  R  .  .  .
301  .  .  .  .  .  . nan R  .  .  .
302  .  .  .  .  .  .  X  R  .  .  .
303  .  .  .  .  .  . nan R  .  .  .

需求:当H列值等于'R'时,将G列和I列的值设置为'U',期望输出如下:

A  B  C  D  E  F  G  H  I  J  K
0    .  .  .  .  .  .  X  L  .  .  .
1    .  .  .  .  .  .  X  A  .  .  .
...
300  .  .  .  .  .  .  U  R  U  .  .
301  .  .  .  .  .  .  U  R  U  .  .
302  .  .  .  .  .  .  U  R  U  .  .
303  .  .  .  .  .  .  U  R  U  .  .

目前通过两次调用loc实现:

df.loc[df['H'] == 'R', 'G'] = 'U'
df.loc[df['H'] == 'R', 'I'] = 'U'

希望用更Pythonic的方式,通过一次loc调用批量处理多列。

解决方案

完全可以实现,只需把要修改的列名放在列表中作为loc的第二个参数即可:

df.loc[df['H'] == 'R', ['G', 'I']] = 'U'

这行代码会一次性对所有满足H == 'R'的行,将G和I列的值统一设置为'U',写法简洁且符合Python的风格。

内容的提问来源于stack exchange,提问作者Domarius

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 05:37:09