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

分组内DataFrame值编辑:将C组Col3列间隔从100调整为200

实现方案

我们可以直接通过Pandas的布尔索引筛选目标分组后生成新的步长序列完成修改,全程仅修改指定分组的指定列,不会影响其他列和其他分组的数据,适配你有大量列的使用场景:

完整可运行代码示例

import pandas as pd
import numpy as np

# 构造示例数据,实际使用时替换为你自己的DataFrame即可
data = {
    'Group': ['A','A','B','B','B','B','C','C','C','C'],
    'Col2': [50,3,200,4.5,89,48,443,54,63,7],
    'Col3': [44,144,500,600,700,800,220,320,420,520]
}
df = pd.DataFrame(data)

# 核心处理逻辑
# 1. 筛选Group为C的行
c_mask = df['Group'] == 'C'
# 2. 取C分组Col3的第一个值作为基准值
c_col3_start = df.loc[c_mask, 'Col3'].iloc[0]
# 3. 生成步长为200的新序列赋值回原列
df.loc[c_mask, 'Col3'] = c_col3_start + 200 * np.arange(c_mask.sum())

补充说明

如果你的C分组行需要先按某一列排序后再调整步长,可以在处理前先对筛选出的C分组行排序,示例:

# 示例:按Col2升序排序C分组的行后再调整步长
df.loc[c_mask] = df.loc[c_mask].sort_values('Col2', ignore_index=True)

运行处理后的df就和你期望的输出结果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 07:54:02