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

如何在Pandas中按条件修改DataFrame的行列数据?

Pandas按条件修改DataFrame数据点的实现方法

方法一:使用loc条件索引(推荐)

这是最直接高效的方式,通过布尔索引定位目标行,直接修改指定列的值:

  1. 先构造示例数据:
import pandas as pd

# 构造输入DataFrame
data = {
    'Column A': [1, 2, 3, 4, 5, 6, 7, 8],
    'Column B': [1, 1, 1, 2, 2, 2, 1, 1]
}
df = pd.DataFrame(data)
  1. 执行条件修改:
# 定位Column B>1的行,将对应Column A的值除以2
df.loc[df['Column B'] > 1, 'Column A'] /= 2

执行后打印df,即可得到预期结果:

Column A  Column B
0       1.0         1
1       2.0         1
2       3.0         1
3       2.0         2
4       2.5         2
5       3.0         2
6       7.0         1
7       8.0         1

方法二:使用numpy.where

如果需要生成新列或避免原地修改,可使用numpy.where实现条件赋值:

import numpy as np

# 对Column A按条件赋值:满足Column B>1则除以2,否则保留原值
df['Column A'] = np.where(df['Column B'] > 1, df['Column A'] / 2, df['Column A'])

说明

  • loc是Pandas原生的索引方式,针对DataFrame的批量操作性能更优,适合处理大数据集。
  • 两种方法都能实现需求,可根据是否需要原地修改选择对应方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 00:05:22