如何仅修改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
相关产品推荐
相关产品推荐

