增量查找和修改数组中的重复值Python

问题描述

对于给定的一系列数字,我想找到重复的条目,并向每个重复的条目递增0.1。这是一个示例:

nums = pd.Series([1,2,3,4,5,6,7,8,9,10])
#some code here#
print(nums)
0      1
1      2
2      3
3      4
4      5
5      5.1
6      5.2
7      6
8      7
9      8
10     9
11     9.1
12    10
dtype: int64

我认为第一步是确定重复数字的索引:

nums.duplicated()
    0     False
    1     False
    2     False
    3     False
    4     False
    5      True
    6      True
    7     False
    8     False
    9     False
    10    False
    11     True
    12    False
    dtype: bool

但是我还没有弄清楚下一步,任何帮助将不胜感激。

解决方法

GroupBy.cumcount除以Series作为计数器,除以10并添加到原始Series

s = nums.add(nums.groupby(nums).cumcount().div(10))
print (s)
0      1.0
1      2.0
2      3.0
3      4.0
4      5.0
5      5.1
6      5.2
7      6.0
8      7.0
9      8.0
10     9.0
11     9.1
12    10.0
dtype: float64