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

如何仅修改DataFrame指定列数据并保持其余列内容不变

实现方案

方法1:直接列名赋值(最常用,无额外依赖)

直接选中目标列做运算后重新赋值给该列即可,其余列数据完全不会被改动。
假设你的DataFrame变量名为df,要修改的列名为target_col,示例代码如下:

import pandas as pd

# 模拟你的4列DataFrame
df = pd.DataFrame({
    "col1": [1, 2, 3, 4],
    "target_col": [5, 10, 15, 20], # 待修改的目标列
    "col3": ["a", "b", "c", "d"],
    "col4": [True, False, True, False]
})

# 仅对目标列执行除以5的操作
df["target_col"] = df["target_col"] / 5

方法2:loc索引赋值(适配条件修改场景)

如果后续需要按条件修改该列的部分行,推荐用loc索引实现,同样不会影响其他列:

# 全列统一除以5
df.loc[:, "target_col"] = df.loc[:, "target_col"] / 5

# 扩展场景:仅目标列数值大于10的行才除以5,其余行保持原值
df.loc[df["target_col"] > 10, "target_col"] = df.loc[df["target_col"] > 10, "target_col"] / 5

补充说明

  • 如果你需要保留整数类型的输出,可以在运算后指定类型转换:
    df["target_col"] = (df["target_col"] / 5).astype(int)
    
  • 不推荐用df.target_col的链式写法赋值,部分场景会触发SettingWithCopyWarning警告,可能导致修改失效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 23:51:03