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

如何识别指定列值重复的行并修改原DataFrame的P列值?

解决方法

直接通过索引定位+原地赋值就能把修改同步回原DataFrame,核心是避免修改子DataFrame副本,而是直接操作原表的目标行。

步骤示例

假设你的DataFrame名为df,按以下步骤操作:

  1. 导入依赖库
import pandas as pd
import numpy as np
  1. 定义分组键(即你提到的四列)
group_cols = ['Chr', 'Start', 'Ref', 'Revel_Score']
  1. 定位需要修改的行的索引
    如果你已经能筛选出符合条件的子DataFrame(比如叫target_rows),直接取它的索引即可:
# 假设你已经得到了符合条件的子表target_rows
target_indices = target_rows.index

如果还没筛选,也可以用groupby直接获取:

# 筛选出四列值完全重复的行的索引
target_indices = df.groupby(group_cols).filter(lambda x: len(x) > 1).index
  1. 生成随机数并更新原DataFrame
# 生成对应数量的0.01~0.1之间的随机数
random_add = np.random.uniform(low=0.01, high=0.1, size=len(target_indices))
# 直接通过loc定位原表的目标行,修改P列
df.loc[target_indices, 'P'] += random_add

关键说明

  • 用df.loc[索引, 列名]赋值是原地修改原DataFrame,不会产生副本,确保修改直接同步到原表。
  • 避免直接修改筛选出来的子DataFrame(比如target_rows['P'] += ...),因为子表可能是原表的视图或副本,修改后不会同步回原表。

内容的提问来源于stack exchange,提问作者Manolo Dominguez Becerra

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 20:44:58