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

在Pandas中处理重复值:为股票价格列重复值添加微小增量

哈哈,这个场景我太熟悉了!之前做量化分析的时候也碰到过类似的重复值导致merge出问题的情况,用pandas的groupby加cumcount组合操作就能完美解决,而且逻辑很清晰。

先给你整个完整的代码示例,直接套用就行:

首先构造你的示例DataFrame:

import pandas as pd

df = pd.DataFrame({
    'Date': ['1-12-2020', '2-12-2020', '3-12-2020', '4-12-2020'],
    'High': [515, 525, 515, 530],
    'Low': [505, 515, 510, 505]
})

然后处理重复值,给非首次出现的重复项加上0.0025:

# 指定需要处理的列
cols_to_adjust = ['High', 'Low']

for col in cols_to_adjust:
    # 按列中的数值分组,计算每个组内的行出现顺序(从0开始计数)
    occurrence_count = df.groupby(col).cumcount()
    # 只有非首次出现的行(count > 0)才加上0.0025
    df[col] = df[col] + occurrence_count * 0.0025

运行完之后,你打印df就能得到你想要的结果:

DateHighLow
1-12-2020515.0505.0
2-12-2020525.0515.0
3-12-2020515.0025510.0
4-12-2020530.0505.0025

补充说明:

如果你的数据里有多次重复(比如某个数值出现3次及以上),上面的代码会给第二次加0.0025,第三次加0.005,以此类推。要是你希望不管重复多少次,所有非首次的都只加0.0025,那把代码里的occurrence_count * 0.0025改成(occurrence_count > 0).astype(int) * 0.0025就行,这样不管重复几次,非首次的都只加一次0.0025。

这个方法的核心是用cumcount()追踪每个数值在列中的出现顺序,然后根据顺序来调整数值,既保留了原数据的意义,又避免了重复值带来的merge问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:12:20