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

如何使用Pandas的df.loc根据条件同时修改多列?

解决方案:条件同时修改DataFrame多列数据

要同时修改符合条件的x和y列,只需在df.loc的列选择部分传入包含目标列名的列表,再为这些列赋值即可。

示例代码(分别给x、y赋值不同值)

import pandas as pd

data = {'s' : ["placementTop","placementProductPage","safgasf", "aslgkmalksg", "ıowjsakguıwa", "placementTop","placementProductPage", "placementTop","placementProductPage",], "State": ["enabled","paused","sagasg", "sagaskg", "sagkşlaksg", "sagaskg", "sagkşlaksg", "sagaskg", "sagkşlaksg"], "x": [10,20,25,30,5,30,5,30,5], "y" : [12,20,25,30,5,20,25,30,5]}

df = pd.DataFrame(data)

# 针对符合条件的行,同时修改x和y列的值
df.loc[(df["s"] == "placementTop") & (df["State"] == "enabled"), ["x", "y"]] = [2, 4]

print(df)

运行输出

s       State   x   y
0          placementTop     enabled   2   4
1  placementProductPage      paused  20  20
2               safgasf      sagasg  25  25
3           aslgkmalksg     sagaskg  30  30
4          ıowjsakguıwa  sagkşlaksg   5   5
5          placementTop     sagaskg  30  20
6  placementProductPage  sagkşlaksg   5  25
7          placementTop     sagaskg  30  30
8  placementProductPage  sagkşlaksg   5   5

补充:给多列赋相同值

如果需要给x和y设置同一个值,直接传入单个值即可:

df.loc[(df["s"] == "placementTop") & (df["State"] == "enabled"), ["x", "y"]] = 0

说明

  • df.loc的第一个参数是行筛选条件,第二个参数是列名列表,可精准选中目标单元格
  • 分别赋值时,赋值列表的长度要和列数一致;单个值会自动广播到所有选中列

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 10:36:04